こんにちは、YuKiOです。
このブログでは、カメラ・写真、プログラム・個人開発、読書についてなどアウトプットの場です。
内容が気に入っていただけたら、ぜひお気に入りに登録や各種SNSのアカウントをフォローください。
ツイッター:https://twitter.com/oo_forward
インスタグラム:https://www.instagram.com/yukio_photographer/
3ヶ月でアプリをリリースしてみて
今年の始めは、アプリなんてリリースできるとは思っていませんでしたが、ツイッターをきっかけにFlutterに出会い、3ヶ月でiOSとAndroidアプリをリリースすることができました。
flutterを初めて約3ヶ月でアプリをリリースしました!
ついついお酒飲み過ぎてしまうという人、使ってみてください。https://t.co/KBQIiDr8AI#駆け出しエンジニアと繋がりたい #プログラミング初心者
— YuKiO | 個人開発&Flutter学習中 (@oo_forward) April 14, 2020
正直、最初は到底無理!と思えましたが、何事もやればできると自信がついたところあります。
その反面、プログラミング「あるある」かもしれませんが、山を超えたら、さらに大きな山がそびえたっていて「うぉ〜〜〜」という状態です。
今回はこれからFlutterでアプリを始めたい人のために、
- Flutterを勉強した方法
- 3ヶ月でアプリをリリースするために気をつけたこと
- Webサービス個人開発経験者がアプリを開発して感じた戸惑い
なんかも解説していきたいと思います。
これまでのプログラミング経歴
プログラミングがRubyから入門し、Ruby on Rails Webサービスを去年は7つリリースしてきました。
凝ったものでなければ、自分のアイデアRuby on Railsで形にできるレベルにはなっていると思います笑
Flutterをどのように勉強したか?
ツイッターをキッカケにFlutterを勉強しはじめましたが、まだまだ歴史が浅いSDKなので、勉強するための教材は限られています。
前提として、自力で調べる力が必要だと感じます。
最初に技術書や無料のツールで学ぼうとしましたが、Javaがよく分からず、JavaベースとなっているDart言語を理解できなかったこともあり、まずProgateでJavaを学習しました。
Java学習後に再度技術書を読みましたが理解できず、Flutter公式を挟みながら、でも英語はちょっと苦手なことあり、四苦八苦しました。
しかし、学習に時間をかけたくなかったので、最終的にUdemyの動画教材を利用することにしました。
Udemyの動画で短時間で学ぶ
結局、お金をかけてUdemyの動画で学ぶことにしました。
英語で読める人に劣る分は、お金でカバー笑
https://www.udemy.com/course/flutter-ios-android/learn/
日本語は2つしかなく、安い方と、高い方と迷いましたが、リリース、DBの取り扱いまで解説されている高い方を選択しました。
確かに高いのですが、3つもサンプルアプリを作成して、さらにDBやリリース方法も解説してくれているので、選んで正解でした。
一通りアプリを作る上ので必要な知識を学べます。
この動画教材で、Flutterを体感的に理解することができました。
無料で学べるのが1番良いのですが、学習するのに半年、1年をかけてしまうのはもったいない思っています。
あくまでプログラミングはやりたいことを実現するためのツールなので、なるべく効率を重視したほうが良いと思います。
アプリ開発するにあたって気をつけたこと
本当に作りたいアプリのアイデアはあったのですが、その前にワンクッションおくことにしました。
その理由は、アプリをリリースするまでがどれだけ大変か、技術的課題があるか分からなかったからです。
まずは自分オリジナルのアプリを世の中にリリースすることを目標に、初のアプリは教材のノウハウのみで作れそうなシンプルな内容にすることにしました。
Railsを学習している時もそうだったのですが、やっぱり1つのサービスを作りきってみないと分からない事ってたくさんあります。
最初からガッツリしたものを作ろうとすると挫折しがち。
だから、別にクソアプリだったとしても、まず世の中にリリースすることを優先させることにしました。
案の定、アプリリリース過程は苦労したので、機能はとてもシンプルなものにしておいて正解でした。
アプリ開発で苦労したこと
Railsでは簡単なことが、簡単じゃない
Railsで開発するときには、さほど困らないことが、Flutterでは困ったりしました。
Railsのように便利なメソッドや、情報がないので、自分で機能を実現させるためによく考える必要がありました。
面倒な部分もありましたが、「自分の頭で処理を考える」という良い経験にはなりました。
Webとアプリはやっぱり違う
Webとアプリって似ているようで、やっぱり違う。
例えばデザインにおいて、Webはキャンパスに定規とペンで描いていく感じに対して、Flutterの場合はあらかじめ規定のスタンプがあって、そのスタンプを押していくイメージでした。
またWebページは基本的に、画面推移で処理するイメージですが、Flutterの場合は処理のタイミングがまちまちなので、適度に再読み込みをする必要があったりと、webと異なるので戸惑いました。
吐いてくるエラーが全く関係ない
FlutterやXcodeが吐いてくるエラーがよく分からないことに苦労しました。
特にXcodeでパッケージがimportできないエラーがあったのですが、いろいろやってみると、buildのiOSバーションの指定が原因だったりと、いろいろ悩まされました。
日本語の情報も少ないので、調べる力が必要だと感じます。
これからFLutterを始める人に
アプリ作りはとても楽しいです。
Webとは違う面白さがあります。
特にWebサービスの場合、ブラウザーを通して作業してもらう必要がありますが、アプリならダイレクト。
Webサービスでは「ダメ」かなと思っていたアイデアも活用できそうで、ワクワクしています。
いろいろ苦労しましたが、実際にやってみる事、ダメでもやりきる事って大切だなと思いました。
今2つ目を作り始めていますが、前よりも順調に開発を進めることができています。
あの日、あの時のエラーは無駄ではありません。
英語に強い人、アプリ開発歴がある人、プログラミング知識が豊富な人は、Flutterってすごく簡単にアプリが作れるSDKかもしれません。
Ruby on Railsの経験しかなかったので、正直かなり苦労しました。
それでも一つの言語を経験していたので、エラーにも怯まず、なんとか進めれることができたと思います。
まったくプログラミング経験がない人が、本から学ぶ場合、かなりキツイのかな?と印象です。もしかするとニュートラルなほうが理解が早いのかもしれませんが。。。
まだ日本語の情報が少なかったりするので、初めてやる人は、まずはiOSやAndoroidのネイティブ言語や、日本語やコンテンツが豊富な、Java、Ruby、Pythonから始めて、そのあとに挑戦したほうがいいのかもしれません。
とはいえ、一番大切なのは「あきらめないで続ける」
お互い頑張っていきましょう!
よかったらぜひフォローしてみてください。
flutterを初めて約3ヶ月でアプリをリリースしました!
ついついお酒飲み過ぎてしまうという人、使ってみてください。https://t.co/KBQIiDr8AI#駆け出しエンジニアと繋がりたい #プログラミング初心者
— YuKiO | 個人開発&Flutter学習中 (@oo_forward) April 14, 2020