狠狠撸

狠狠撸Share a Scribd company logo
DevFest #1
Python を用いたツール作成工数の最小化
November 27, 2015
1st Section, 1st Department, Global Business Development Center
Yutaka YK Katoh
ツール作りに
Python を推す理由
小学生小学生小学生
小学生
小学生
小学生
小学生
小学生
先生 先生
Raspberry Pi
Python
http://www.bbc.com/news
/technology-18301670
Python は小学生でも書ける!
Python を推す理由 その1
組み込み/IoT
クラウド
コンピューティング
ロボティクス 機械学習
Python は
用途やベンダーに縛られない!
Python を推す理由 その2
http://hrog.net/2015102624991.html
Python
395万円
Java
364万円
C#
355万円
Python を推す理由 その3
Python は
高い価値を生み出せる!
作る側の都合 使う側の都合
? とにかく速く作りたい (LL※で書きたい)
? 使い心地の良く生産性の高い開
発環境が欲しい (入力アシスト、静的解析、
リファクター等)
? ベンダーロックイン/フレームワー
クロックインはなるべく避けたい
? 使い方を調べる手間をかけたくな
い (理想は見ただけで起動方法がわかる
exe ファイル単体、可能なら GUI の提供)
? 幅広い動作環境で動いて欲しい
(特に OS バージョン依存の排除)
? ランタイムのセットアップに時間を
割きたくない (VB/VC/.NET Runtime,
JRE, Adobe AIR 等)
※ LL: 軽量言語。AWK, JS, Lua, Perl, Python, Ruby, PowerShell 等
開発環境
IDLE
JetBrains PyCharm
? 超軽い!Python + Tk で書かれている。
? シェルの利用や小物コードの編集に向いている。
? Python の標準 IDE として配布されている。
使い慣れた IDE (VS2015 や Eclipse 等) のアドオン?プラグインを入れるのが一番手っ取り早い。
Python 専用の IDE としては、以下の 2 つが有名。
? ちょっと重い!Java + Swing で書かれている。
? IntelliJ や Android Studio 等と同じ操作感。
? 機能面に関しては最強 IDE と言っても過言ではない。
オススメ
GUI ツールキット
多くの選択肢があって悩みどころ。ほとんどが Win/Mac/Linux のクロスプラットフォーム対応。
tkinker
? Tk の Python バインディング。
? IDLE はこれで書かれている。
? 古臭い見た目になる。
wxPython
? wxWidgets の Python バイン
ディング。
? 抽象度具合は Java の SWT に
近く、見た目はほぼネイティブ。
PyQt, PyGTK
? それぞれ Qt, GTK+ の Python バイン
ディング。
? どちらかというとこってりした UI 向け。
PyGame, Kivy
? アニメーションやマルチメディア処理が
簡単に書ける。
? 別にゲーム専用というわけではなく、ビ
ジネスアプリケーションも十分作れる。
オススメ
GUI ビルダー
wxPython には強力な GUI ビルダー “wxFormBuilder” が存在している。
DEMO
フレーム追加
レイアウト追加
ラベル追加
テキスト入力
コード自动生成
コード自动生成
ボタン追加 イベント名定義
プロジェクト設定
継承コード
出力設定継承クラス指定
ここにイベントの
処理を書くだけ
パッケージング
py2exe py2app
? Python プログラム一式を単一の
exe ファイルにパッケージング。
? Python ランタイムやライブラリが
exe ファイルに埋め込まれる。
? ico 形式のアイコンを設定可能。
? 設定ファイル例:
https://github.com/mikan/racm/
blob/master/src/build_exe.py
? Python プログラム一式を OS X の
app 形式にパッケージング。
? Python ランタイムやライブラリが app
パッケージ内にコピーされる。
? icns 形式のアイコンを設定可能。
? 設定ファイル例:
https://github.com/mikan/racm/blob/
master/src/build_app.py
スクリプトを単一の exe や app に変換。誰も Python で作ったことなんて気づかない。
My tool works
日常業務
? テスト準備ツール
? ビリングコード一括登録
(Streamline NX 用 / AE2 用)
? 雑多な検証コード
? 技術調査, 競合調査等
趣味
? お天気カメラ動態検知分類 CGI
(実家のお庭で運用中)
? Dynamic DNS 更新クライアント
オープンソースアプリ
? Remote ADB Connection Manager
Remote ADB Connection Manager
遠隔 ADB 接続時の操作ミスで、何度か他の
チームのマシンや評価マシンのアプリをぶっ飛
ばしてしまった反省を踏まえ、日曜プログラミン
グで制作。最近AP開Cでも使われだした模様。
今回紹介したツール群で制作。
Source & Download:
https://github.com/mikan/racm
? 遠隔 ADB 接続先管理機能
? 固定 ADB コマンド送信機能 (3件まで)
? APK インストール機能
22/02/2016 20

More Related Content

GBDC 勉強会 #1 Python を用いたツール作成工数の最小化