見出し画像

ジーズアカデミーで学んだこと+独学でFlutterで作ったもの+他


2021年1月ジーズアカデミー入学、ジーズアカデミーのコース内容は、前期、中期、後期、開発期間の4つからなる。前期はHTML、CSS、JavaScriptのフロントエンド3言語演習、中期はPHPのバックエンド演習、後期はフロントエンド実践コース(React組)とウェブサービス開発コース(Laravel組)の2つから選択、最後、開発期間で自分の作りたいウェブサービスを開発するという流れになっている。入学時に書いたnoteが以下:

入学時のnoteを振り返ると、パソコンやら自宅の学習環境整備等でモチベーションを高めようとしていたことがわかる、面倒くさいことからは逃げやすい性格なので逃げられない状況を自分で作ることが大事。ちなみに、今だから言えることだが、本はこんなに読む必要はなく、公式のドキュメントを読むのが一番良い、本読む暇があったら一行でも多くコードを書いたほうが早いが、この時は全く知らなかったw

1、前期
・HTML、CSS
コース開始前の事前課題としてHTML、CSSを使って与えられた静的ウェブページをコーディングさせる課題が出る、HTML、CSSは書けて当然という前提なのかといきなり面食らうものの、なんとか過去の知識、ググりながら完成させる、Flexboxの存在を知る、昔はtableタグで横レイアウト、グリットレイアウトを無理やり構築していたのを懐かしく思い出すw

HTML、CSS演習後、自分のクリニックのホームページリニューアルを自力でやってみた、もともとWordPressで作った非常に見ずらいページだったのが、Font、Color、Padding等をお手入れするだけで見やすくなったと好評、業者に発注すると数十万取られるのでこれだけでも十分元が取れたw
・JavaScript_01:変数、if文、Math()、jQuery、DOM操作等

スクリーンショット 2021-07-30 22.03.47

千里の道もif文から、さすがにこのへんは余裕
・JavaScript_02:array、for文、localStorage等

スクリーンショット 2021-07-30 22.08.10

localStorageを使ってFirebaseの真似ごとのようなものを作る、余談だがコロナ禍対策した上の飲み会で、予備のドリンクを置く場所をlocalStorageと呼ぶのが一瞬だけ流行ったw
・JavaScript_03:関数、オブジェクト、JSON、Firebase、clickイベント等

スクリーンショット 2021-07-30 22.13.23

新型コロナの自宅療養が社会課題になっていた時期だったので、自宅療養記録帳をFirebaseを使って実装、ただのCRUD処理であっても扱うデータをバイタルサインにするだけで簡易クラウド電子カルテっぽさが出る。
・JavaScript_04:Web API

スクリーンショット 2021-07-30 22.19.46


ウェブAPIを使ったものであれば何でもいいという課題で、SpeechRecognitionというwebkitを発見し、たった数行程度で音声認識→テキスト起こしが出来てしまったことに感動する、このへんから自分の書いたコードが思い通りに動くことの嬉しさ、プログラミングの楽しさに気付き始めたかもw

2、中期

画像12

・PHP_01:PHPの基本文法、INSERT、SELECT、WHERE、GET、POST
・PHP_02:UPDATE、DELETE
・PHP_03:Auth処理、SESSION管理
・PHP_04:ユーザー管理、セキュリティ対策
生のPHPで、CRUD処理(Create、Read、Update、Delete)とAuth、SESSION管理を実装、今となってはFirebase様へ全面的にまるっとお願いで必要十分ではあるが、生のPHPでどういう原理でSESSION管理が動いているのか理解出来たことは非常によかった、また、講師の方が「ほとんどのウェブサービスはCRUDをやっているに過ぎないと言っても過言ではない(過言)、データが色々違うだけで基本は共通」みたいな趣旨のことを言っていて、目からウロコが落ちた。プログラミング言語が変わっても、制御構文とCRUD処理を押さえておけばまあ最初のキモを外すことはないと理解

3、後期

画像13

・DB設計:データベースデザイン、エンティティ、リレーションシップ、データ項目
・Laravel_01:環境構築
・Laravel_01:CRUD処理
・Laravel_01:DBテーブルのリレーション
・Laravel_01:補講、デプロイ等
このへんの記憶がまるでない、生のPHPでやっていたことをPHPのフレームワークの一つであるLaravelで書き直してみて、モダンな開発を触れるという内容、自分はフロントエンド向きの性格だと自覚していたのでフロントエンドは今後とも自分で勝手に興味を持って勉強するだろう、せっかくお金を払ってジーズアカデミーに入学したのだから自分では絶対にやらないことを学ぼう、という逆の発想でLaravelを選択したものの、1対1、1対多のリレーションまではギリギリ着いていけたが、多対多のリレーションの構築で挫折、写経は出来るけど自力でゼロから出来る気がしない、フレームワークを導入したことの有り難みが体感出来ずに、苦手意識からプログラミングから逃げる生活にw

4、開発期間:特に作りたいものがなく、メンター制度の申請の期限にも遅れてしまい、一人虚無の時間を過ごす。脈絡なく、Python、Ruby、Unity等へ手を出したり、エンジニア系YouTube動画をだらだらと観たり、このへんの迷走をまとめたnoteが以下w

noteを読み返すと、ここで運命的にFlutterに出会っていなかったら危なかったと感じる。特に起業志望でも転職志望でもなく、時間はいっぱいあったので、残りの時間でFlutterを学ぼうと決める。たまたま、Udemyのセールの時期と重なって、片っ端から狂ったように講座を買い、狂ったようにFlutterアプリを作り始めるw
独学でFlutterで作ったもの:
・一番最初に作ったアプリ、Scaffold、AppBar、body、Center、Textの5つのWidgetだけしかないが、これが出来た時は嬉しかったw

画像15

・一番最初にやったFlutterのUdemy講座

画像15

上記講座の通りやっていたら、本当に1日でアプリを作れた、勿論、JavaScript等の下地があったのも大きいが、動いた時は嬉しさのあまり、シミュレーターのスクリーンショット機能ではなく、なぜか画面を直接写真撮影しているw
FlutterラボさんのUdemy講座は、一つ一つが長過ぎず完結しており、達成感がある、喋り方が丁寧でわかりやすく、リリースされている講座は全部やりましたw
以下、作ったものの一部とUdemy講座のものはそのリンク(非アフェリエイトリンク)です。他にもいくつか作った気がしますが、ざっとわかる範囲だけ整理

画像18

Flutter大学さんはYouTuberとしても有名w

画像16

画像23

画像19

画像20

画像22

画像22

我妻さんのFlutter、FIrebase、MLkitをまるっと学べる贅沢な講座、我妻さんの機械学習系の講座はどれもとてもオススメ、語り口が好きw
このへんでFirebaseのAuth処理に異様にハマり、メールアドレスログインから始まり、Google、Facebook、Twitter、Apple、LINEのサインインを実装、FirebaseのAuthとFlutter、各ソーシャルメディアのAuth、公式のドキュメント、Stack Overflow等を適宜ググりながら自力で解決していく習慣が着く
・メールアドレスサインイン

画像29

・Googleサインイン

画像30

・Facebookサインイン

画像31

・Twitterサインイン

画像32

・Appleサインイン

画像33

・LINEサインイン

画像34

・FlutterとFirebaseの連携にもかなり慣れて来て、何も教材等を見ないで自力でCRUD処理を実装出来るかどうかチャレンジ

画像34

AuthとCRUDが出来てしまえば後はDeplyをしたくなるのが人情w

画像24

画像25

画像26

以上、2ヶ月半くらいでとたくさんのFlutterアプリを作りました。とにかく、没頭するというのは大切、具体的には、朝から夕方、20時(土日は18時)くらいまでは診療、少し休憩、軽食を取ってからFlutter開始、24時前後の切が良いところで前半戦を切り上げて、近所のサウナで思考整理、その後まだ元気が残っていれば3、4時くらいまでFlutter後半戦、就寝という生活をここずっと送っていました(勿論眠い時は無理しないで寝ますがw
時間はあるかないかではなく、作るか作らないかなんですよ!

画像27

なお、開発期間はジーズアカデミーのカリキュラム無視で狂ったようにFlutterアプリを作り続けていましたが、修了認定のためには何らかのプロダクトを提出しなければならず、上記のアプリで学んだことを総動員して血圧手帳アプリを作って、それを提出したらところ無事受理されました(修了認定OKされたとは言っていない)
Qiitaは3つほど書きました。CRUDが出来て、Authが出来て、Deploy出来れば後はこっちのものなんですよ!

現在は、UdemyのFlutterの登竜門的存在の講座「The Complete 2021 Flutter Development Bootcamp with Dart」をコツコツを進めています。UdemyのFlutter講座で一番最初に買ったものの、30時間近くのボリューム、フル英語とのことで躊躇していたのですが、実際に始めてみたらとてもわかりやすい英語でオススメです。ただ、Angelaさんの節々の勇気付けるような動画に励まされています。また、実はMedical Doctorということも知って勝手に親近感を感じていますw

画像1


画像2

画像3

画像4

画像5

画像6

画像7

調子に乗って、自分のためand/orこれからFlutterを始める人のために、Qiitaを更新中です。やっぱ英語というだけでとっつきにくいのはもったいない!

さらに調子に乗って、2021/7/29、「医療従事者のためのFlutter学習共有グループ「flutter doctors(仮称)」というグループを立ち上げました。

スクリーンショット 2021-07-30 23.43.03

https://www.facebook.com/groups/792968328010456
ちなみに、「flutter doctor」はFlutterの環境構築で一番最初に入力するコマンドですw
医療現場で作りたいものをその場ですぐにFlutterで形にする、ちょっとづつで良いので現場の課題を自分たちで解決していく、医療を少しずつ、世の中を少しでもよくするような、そんな医療従事者が増えたら面白いと感じています。興味があるからはぜひ上記リンクからジョインください。半学半教の精神で、自分自身もさらにFlutterで作れるものを増やしたいです。

画像35

最後に、ジーズアカデミーに入学して良かったかというと、非常に良かったです。Flutterは関係ないじゃんと思うかも知れませんが、Dartの書き方はJavaScriptがわかっていれば、後は静的型付け、オブジェクト志向、Null Safetyが強化されたくらいで基本骨子は同じなので習得が早いし、Laravelは自分には合わなかったけど、鬼のようなファイル群、全ての原理は理解しなくていい、まずは動けばいい、その上でさらに興味を持ったら背景でどういうレンダリング、ロジックが動いているのか調べてみれば良い、フレームワークというものとの付き合い方の素地を学んでいたのは大きいです。
ちなみに、コロナ禍の講義なので、授業は全てオンライン、アーカイブで受講、原宿駅前のリッチな立地に校舎があるのですが、入学試験、学生証を受け取りに行く時の2回しか校舎には行っていません。海外から受講していてそもそも一回も日本に来ていない同期もいましたw
クラスメイトのバックグラウンドは多種多様で、医療従事者以外では、商社、銀行、スポーツ関係、デザイナー、スタートアップ、フリーランス、自営業者等、面白い人がいっぱいいますが、コロナ禍ということもあり、同期とのつながりは残念ながらそこまで密ではありませんでしたが、ジーズアカデミーのつながりは卒業後も続くらしいので、そのへんは今後長い目で。
プログラミングは避けて通れないもの、いつかはやらなくてはいけないもの、という義務、苦手意識だったのが、プログラミングの楽しさに触れて、プログラミングが好きになり、Flutterという相棒も見付け、出来ることが増えると嬉しい、嬉しいからまたプログラミングを学ぶ、という好循環の状態が構築出来たことが入学して一番良かったことです。興味を持った方はぜひジーズアカデミーの門を叩いてみてください。(ステマ)


この記事が気に入ったらサポートをしてみませんか?