ゲームとネヲチと時々開発

dota2とかゲームとか開発

N予備校終了後、紆余局をへてPythonやることにした

↓の記事のとおりN予備校の入門コースが終わったが、
そのあとどうするか悩んでいた

 

悩んだ結果のpython入門

 

 

netwatching.hatenadiary.com

 

 

 

N予備校で学んだこと

N予備校では、テキストと映像による合わせ技の教育を受けられるのだが、
ほとんどテキストのみで進めた

 

学んだことはたぶん↓

・環境構築(vagrant + Ubuntsu + VScode)

・Node.jsでweb開発

・htmlとCSS

・bootstrap

jQuery

SQL(postgreSQL)

ajax

 

記憶に残ってるのはこれくらい

特にbootstrapがらくらく見た目よくする最強ツールだと思った

次点でSQL. これはweb以外でも役に立ちそうだったから

 

それ以外はなんとなくそんなんあったな程度

 

 

で、

N予備校が終わった後、

「じゃあ実際なにつくりたいのよ?」ってなったとき

さくっとデスクトップアプリ作りたいって感じになった

 

なぜwebサービスではなくデスクトップアプリなのか

webのいいところ:

・webはたくさんの人に役立つものを提供できる可能性がある

・OSによらない(WindowsでもMacでもスマホでも対応

 

webのわるいところ:

・セキュリティがめんどくさい

・サーバーの用意が必要

 

 

端的に言うとセキュリティがめんどくさいです

 

 

 

じゃあ

学んだことを活かしつつデスクトップアプリを作るにはどうすればいいか?

Electronっていうのがあるらしい

 

 

Electronとは?

electronjs.org

最新版で学ぶElectron入門 - HTML5でPCアプリを開発する利点と手順 - ICS MEDIA\

Electron (エレクトロン)とは、Webの技術でデスクトップアプリケーションを作成できるテクノロジーです。HTML5とCSS3、JavaScriptを使って開発し、WindowsmacOSの両OSのアプリケーションを一つのコードから作ることができます。近年、注目度が高まっておりマイクロソフトGitHubなど、有名企業も採用しています。

 

なんかすごそうですよね

 

 

でもね、下記の理由で諦めました

・日本語情報がほとんどない

・node.jsをそれほど詳しく知っているわけではない

 

そもそもnode.js自体、それほどとっつきやすいかってうと微妙だと思います(個人の見解

で、Electronの一番乗メリットっていうのは、既に浸透しているWebの技術を使って開発できるってことであって

 

ちょっとnode.jsをかじっただけの自分には関係なかった

 

あと、公式(英語)のドキュメントと長時間にらめっこするハメになりそうなのも勘弁

 

 

 

そこでPython

f:id:netwatching:20180312201745p:plain

 

pythonとは

www.python.jp重要なところ引用

・とてもクリーンで読みやすい文法

 

Pythonファンはよく、非同期プロセスからzipファイルの圧縮展開までこなす標準ライブラリを説明するのに、「バッテリー同梱(batteries included)」というフレーズを良く使います。言語そのものも、さまざまな問題ドメインを実用的に扱えるほど、柔軟な言語になっています。3行で自分のウェブサーバを構築することもできます。P

 

Python - Wikipedia

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある

 

 

よさそうですよねぇぇ・・・!

 

 

 

pythonを学ぶ

まずAnacondaというpython入門キットみたいなので、pythonをインストール

weblabo.oscasierra.net

 

 

 

環境変数の設定、VScodeのインストール

だいたい下記の記事が網羅してるっぽいです

 

beachside.hatenablog.com

 

Hello, World!

www.python-izm.com

 

次のステップ

リストや文字列を切取るスライス操作の基礎

テキストファイル読み書きの基礎
フォルダ内のファイル一覧を取得する方法
CSV ファイルを読込む方法

weblabo.oscasierra.net

if文とかfor文

4. その他の制御フローツール — Python 3.6.4 ドキュメント

 

 

 

 

これでだいたい基本的なことは分かったかと思います

 

 

 

GUI(ウィンドウ)で何かしたい

 

前述のとおり、pythonにはいろいろライブラリがあるらしく、
その中のTkinterというのを使うとGUIアプリが簡単に作れるらしい

 

 

3行でウィンドウが表示できます

ソースコードの貼り方がイマイチよくわかんないので、VScodeからコピペ

import tkinter as tk

root = tk.Tk()
root.mainloop()

 

 

 

ボタン等の配置

memopy.hatenadiary.jp

↓こっちも併用

お気楽 Python/Tkinter 入門

 

公式

25.1. tkinter — Tcl/Tk の Python インタフェース — Python 3.6.4 ドキュメント

 

 

 

今ボタンを押したら何か反応を示すプログラムをつくるところまでできた

import tkinter as tk

root = tk.Tk()
root.title("たいとる")
root.geometry("640x480")

def text_get():
username = namabox.get()
cpu_msg["text"] = ("hello, " + username)


toplabel = tk.Label(root,text="あなたの名前は?", font=("メイリオ",48))
toplabel.pack()

namabox = tk.Entry(root,font=("",16),justify="center")
namabox.pack()

OKButton = tk.Button(root,text="決定", font=("",16),command=text_get)
OKButton.pack()

cpu_msg = tk.Label(root,text="",font=("メイリオ",48))
cpu_msg.pack(side="bottom")

root.mainloop()

 

 

こんな画面↓になります

 

f:id:netwatching:20180312212634p:plain

 

 

 

圧倒的に簡単、とっつきやすい!!

 

 

 

そういうわけでこれからもpythonやっていきます