gbdc devfest #1 python を用いたツール作成工数の最小化

20
DevFest #1 Python ををををををををををををををを November 27, 2015 1st Section, 1st Department, Global Business Development Center Yutaka YK Katoh

Upload: yutaka-kato

Post on 15-Apr-2017

200 views

Category:

Software


1 download

TRANSCRIPT

Page 1: GBDC DevFest #1 Python を用いたツール作成工数の最小化

DevFest #1

Python を用いたツール作成工数の最小化

November 27, 20151st Section, 1st Department, Global Business Development CenterYutaka YK Katoh

Page 2: GBDC DevFest #1 Python を用いたツール作成工数の最小化

ツール作りに

Python を推す理由

Page 3: GBDC DevFest #1 Python を用いたツール作成工数の最小化

小学生小学生小学生小学生

小学生

小学生小学生小学生

先生 先生

Raspberry Pi

Python

http://www.bbc.com/news/technology-

18301670

Page 4: GBDC DevFest #1 Python を用いたツール作成工数の最小化

Python は小学生でも書ける !

Python を推す理由 その 1

Page 5: GBDC DevFest #1 Python を用いたツール作成工数の最小化

組み込み /IoT クラウドコンピューティング

ロボティクス 機械学習

Page 6: GBDC DevFest #1 Python を用いたツール作成工数の最小化

Python は用途やベンダーに縛られない !

Python を推す理由 その 2

Page 7: GBDC DevFest #1 Python を用いたツール作成工数の最小化

http://hrog.net/2015102624991.html

Python395 万円

Java364 万円

C#355 万円

Page 8: GBDC DevFest #1 Python を用いたツール作成工数の最小化

Python を推す理由 その 3

Python は高い価値を生み出せる !

Page 9: GBDC DevFest #1 Python を用いたツール作成工数の最小化

作る側の都合 使う側の都合• とにかく速く作りたい (LL※ で書

きたい )

• 使い心地の良く生産性の高い開発環境が欲しい ( 入力アシスト、静的解析、リファクター等 )

• ベンダーロックイン / フレームワークロックインはなるべく避けたい

• 使い方を調べる手間をかけたくない ( 理想は見ただけで起動方法がわかる exe ファイル単体、可能なら GUI の提供 )

• 幅広い動作環境で動いて欲しい ( 特に OS バージョン依存の排除 )

• ランタイムのセットアップに時間を割きたくない (VB/VC/.NET Runtime, JRE, Adobe AIR 等 ) ※ LL: 軽量言語。 AWK, JS, Lua, Perl, Python, Ruby, PowerShell 等

Page 10: GBDC DevFest #1 Python を用いたツール作成工数の最小化

開発環境

IDLE

JetBrains PyCharm

• 超軽い! Python + Tk で書かれている。

• シェルの利用や小物コードの編集に向いている。

• Python の標準 IDE として配布されている。

使い慣れた IDE (VS2015 や Eclipse 等 ) のアドオン・プラグインを入れるのが一番手っ取り早い。Python 専用の IDE としては、以下の 2 つが有名。

• ちょっと重い! Java + Swing で書かれている。

• IntelliJ や Android Studio 等と同じ操作感。

• 機能面に関しては最強 IDE と言っても過言ではない。

オススメ

Page 11: GBDC DevFest #1 Python を用いたツール作成工数の最小化

GUI ツールキット多くの選択肢があって悩みどころ。ほとんどが Win/Mac/Linux のクロスプラットフォーム対応。

tkinker• Tk の Python バインディン

グ。• IDLE はこれで書かれてい

る。• 古臭い見た目になる。wxPython• wxWidgets の Python バイン

ディング。• 抽象度具合は Java の SWT

に近く、見た目はほぼネイティブ。

PyQt, PyGTK• それぞれ Qt, GTK+ の Python バ

インディング。• どちらかというとこってりした UI

向け。

PyGame, Kivy• アニメーションやマルチメディア

処理が簡単に書ける。• 別にゲーム専用というわけではな

く、ビジネスアプリケーションも十分作れる。

オススメ

Page 12: GBDC DevFest #1 Python を用いたツール作成工数の最小化

GUI ビルダーwxPython には強力な GUI ビルダー “ wxFormBuilder” が存在している。

DEMO

Page 13: GBDC DevFest #1 Python を用いたツール作成工数の最小化

フレーム追加レイアウト追加

ラベル追加

テキスト入力

Page 14: GBDC DevFest #1 Python を用いたツール作成工数の最小化

コード自動生成

Page 15: GBDC DevFest #1 Python を用いたツール作成工数の最小化

コード自動生成ボタン追加 イベント名定義

Page 16: GBDC DevFest #1 Python を用いたツール作成工数の最小化

プロジェクト設定

継承コード出力設定継承クラス指定

ここにイベントの処理を書くだけ

Page 17: GBDC DevFest #1 Python を用いたツール作成工数の最小化

パッケージング

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 で作ったことなんて気づかない。

Page 18: GBDC DevFest #1 Python を用いたツール作成工数の最小化

My tool works

日常業務

• テスト準備ツール• ビリングコード一括登録

(Streamline NX 用 / AE2 用 )

• 雑多な検証コード• 技術調査 , 競合調査等

趣味

• お天気カメラ動態検知分類 CGI (実家のお庭で運用中)

• Dynamic DNS 更新クライアント

オープンソースアプリ• Remote ADB Connection Manager

Page 19: GBDC DevFest #1 Python を用いたツール作成工数の最小化

Remote ADB Connection Manager

遠隔 ADB 接続時の操作ミスで、何度か他のチームのマシンや評価マシンのアプリをぶっ飛ばしてしまった反省を踏まえ、日曜プログラミングで制作。最近 AP 開 C でも使われだした模様。今回紹介したツール群で制作。

Source & Download:https://github.com/mikan/racm

• 遠隔 ADB 接続先管理機能

• 固定 ADB コマンド送信機能 (3件まで )

• APK インストール機能

Page 20: GBDC DevFest #1 Python を用いたツール作成工数の最小化

03/05/2023 20