16
Python一般向け スタンドアロンアプリを 作ってみた 綿引 博之 @hrwatahiki PyConJP2014

PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

Embed Size (px)

DESCRIPTION

PyConJP2014 2014-09-13のLTで発表した、「Python で一般向けスタンドアロンアプリを作ってみた」のスライドです。発表のアプリは、http://sourceforge.jp/projects/pydun/ からダウンロードできます。

Citation preview

Page 1: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

Pythonで一般向け

スタンドアロンアプリを作ってみた

綿引 博之@hrwatahiki

PyConJP2014

Page 2: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

始める前に

今回作ったプログラムをダウンロードできます。

http://sourceforge.jp/projects/pydun/releases/

もしくは

「pydun 」

で検索してください。

Page 3: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

始める前に

● Windows通常版がおすすめです。

● Linux版はライブラリがいろいろ必要なので、

Windows版をWine上で動かすのが

おすすめです。

● Macは持ってないんで試してません。

Page 4: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

自己紹介

● 一応プログラマーです。● 茨城県の真ん中あたりに住んでます。

● 仕事ではPythonをほとんど使っていません。

● そもそも周りにPythonが分かる人がいない。

Page 5: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

Pythonの印象

● 書きやすい。● 読みやすい。

● すごいプログラマーがかっこいいWebサービスとか

作るのに使ってそう。

● 一般人が簡単なGUI付きアプリ作るのは

どうなのか?

Page 6: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

作ったアプリ

● 名前は「pydun」 (PYthon+DUNgeon)● 方眼紙の上に地図を描くのをコンピューター上で

やるアプリケーション

● わかる人向けに言うと、DSの「世界樹の迷宮」の

下画面

世界樹の迷宮ホームページより引用

Page 7: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

作った理由

● 作者がゲーム好き● 同じようなことをやるプログラムは既にいくつか

あるが、処理が重かったり機能が少なかったりで

不満があった。

● Pythonの勉強のため

● リハビリ

Page 8: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

アプリの目標

● Pythonでつくる(must)● プログラムのことがよくわからない

一般ユーザーでも使えるものにする(must)● セーブデータを互換性の高いものにする(should)● マルチプラットフォーム(may)● 自分が満足すること(???)

Page 9: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

GUIライブラリ

● Tkinter

 →見た目が残念、資料があまりないので、×● PyGTK(PyGObject) 

 →昔作ったことがある(Cだけど)ので、×● wxPython

 →よさそう。本も買った(読んでない)● PyQt or PySide (Qt)

 →よさそう。そういえば・・・

Page 10: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

磯 蘭水さんがPyConJP2011で

「PyQtではじめるGUIプログラミング」

っていうのやってた。

Qt にしよう!!!

Page 11: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

PyQt と PySide

● どちらもQtのPythonバインディング

● PyQtはGPL● PySideはLGPL● 作ったのはNokia(当時のQt所有者)● あまり違いはない。

(と思う。ちゃんとは調べてません。)● 後発のPySideにしました。

● 細かく制御する必要があるため、

GUIデザイナーは使いませんでした。

Page 12: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

セーブファイル

● yamlにしました。

→テキストで、人間が読みやすい

→セーブファイル単体でも、地図として読めます

Page 13: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

Windows用実行ファイルを作る

● 作成当時(2012年頃)の話です。

Py2exeはバージョンアップしてます。

● Py2exe

 → いろいろできるけど、設定ファイルを作るのが大変

● cx_Freeze● PyInstaller

 →ドキュメントが分かりやすい(と思う)

   コマンド1行で実行ファイルができる。

Python3以降には対応していない。

● PyInstallerにしました。

Page 14: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

できた!

Page 15: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

反省

● ソースが汚い、コメントが少ない。

● Python2になってしまった(PyInstallerを使うため)。● プログラミングに励むあまり、

ゲームをやる気力がなくなってしまった。

Page 16: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun

まとめ

● PythonとPySideを使って、スタンドアロンアプリを作りました。

● 楽しかったです。

● Python3に対応できるよう、よく考えよう。

● ご意見いただければ幸いです。(@hrwatahiki)