gbdc devfest #1 python を用いたツール作成工数の最小化
TRANSCRIPT
DevFest #1
Python を用いたツール作成工数の最小化
November 27, 20151st Section, 1st Department, Global Business Development CenterYutaka 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
Python395 万円
Java364 万円
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 インストール機能
03/05/2023 20