産休中に娘を撮るためのカメラアプリをつくってみた

２月ごろから勉強始め、最近ようやくリリースできたのでプロセスを共有します😊
なにかお役に立てば幸いです。

##つくったもの
名前と生年月日を登録すると、生後何ヶ月かが表示され撮影できるアプリ📷
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">赤ちゃん成長記録カメラの使い方📷 <a href="https://t.co/k6Ll19d0Ph">pic.twitter.com/k6Ll19d0Ph</a></p>&mdash; Lulu34 (@lulu34_34) <a href="https://twitter.com/lulu34_34/status/1000752384941867008?ref_src=twsrc%5Etfw">2018年5月27日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

~~[⭐ダウンロードはこちら⭐](https://itunes.apple.com/jp/app/%E8%B5%A4%E3%81%A1%E3%82%83%E3%82%93%E6%88%90%E9%95%B7%E8%A8%98%E9%8C%B2%E3%82%AB%E3%83%A1%E3%83%A9/id1385036435?mt=8)~~

##myスペック
swift：★☆☆☆☆（1/5）
デザイン：☆☆☆☆☆（0/5）

ものづくりをしたい気持ち：★★★★★（5/5）

##１．基本の文法を学ぼう
[プログラムはこうして作られる](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%93%E3%81%86%E3%81%97%E3%81%A6%E4%BD%9C%E3%82%89%E3%82%8C%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E9%A0%AD%E3%81%AE%E4%B8%AD%E3%82%92%E3%81%AE%E3%81%9E%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-%E5%B9%B3%E5%B1%B1-%E5%B0%9A-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%82%BB%E3%82%AC/dp/479803925X)
Sunabaというオリジナル言語で０からテトリスをつくっていきます。
この環境でしか動かない言語なので回り道ではありますが、
「プログラムをどういう考え方で組んでいけばよいか」を学べたのでやってよかったです。

進め方はこんな感じでした↓
１．とにかく動くものをつくるため冗長なコードを書く
２．コードをきれいに書き直してみる
３．きれいにしすぎると可読性下がるので、ある程度でやめておく
４．１～３を繰り返し繰り返し…すこーしずつ機能を増やしていってよーやく完成

###Swift
気に入ったサービスに課金してやり込むのもよさげ✊

####Webサイト
[Udemy](https://www.udemy.com/jp/)
[ドットインストール](https://dotinstall.com/)

####iosアプリ
[codebelle](https://itunes.apple.com/jp/app/codebelle-%E3%82%B9%E3%82%AD%E3%83%9E%E6%99%82%E9%96%93%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/id1072749712?mt=8)
[Mimo](https://itunes.apple.com/us/app/mimo-learn-to-code/id1133960732?mt=8)

プログラミングも言語なので、外国語の勉強と同じように進めようと意識してました。
外国語：単語詰め込み→例文詰め込み→自分で話したいことを話せるようになる
swift：文法詰め込み→サンプルアプリ作成→自分で作りたいものを作れるようになる
勉強がしんどくても、その先の未来（パソコンと自在に会話し、つくりたいものをつくれるようになってる）をよく妄想していました😂

##２．どんなアプリを作るか決めよう

自分が使いたい&なるべく他人も使ってくれそうなアプリを作りたかったので、
アプリストアを検索して**マーケットの競争が激しすぎないか**をみていました。
（例えばダイエットアプリも案にありましたが、アプリストアにたくさんの素敵なダイエットアプリがあり、わざわざ自分が作る必要ないわ😂と思ったためやめました）

##３．コード書いてみよう
①Googleスプレッドシートに機能一覧を作成
②作れそうな機能から作る（もし作れなかったら翌日頭が冴えてからやりなおす）
③やり直しても作れなかった機能をカテキョで聞く
という流れで進めました。

１つ機能ができるごとにgitにあげてバージョン管理してましたが、前バージョンからコードコピペできてよかったです。

自分で納期を決めて、できない機能はがんがん削除してました。
それより今できる範囲で作れるものを作って、アウトプットしたかった✊

##４．諦めない仕組みをつくろう

プログラミングがすごーく好きな人は違うのかもしれませんが
私の場合、アプリをリリースするまでに**こんなアプリ、誰もつかわないんだぁあぁあ…やーめぴ💕**という気持ちにたびたび襲われました。

あの宮崎駿さんでも制作活動をしながら[めんどくさいめんどくさい言うそう](http://corobuzz.com/archives/55333)なので、
プログラミングをめんどくさいと感じないくらい好きじゃないとアプリをつくっちゃだめなんだ
と思わないで、**めんどくさくなっても継続する仕組みをつくるのが大事**だと思います。

###仲間をつくる
[みんチャレ](https://minchalle.com/)
現代版五人組。毎日やったことをメンバーに報告してました。
毎日やらないと**「今日もやってないアイツ…」と思われるのが嫌**で続けることができました（ネガティブ）
**メンバーががんばってると刺激をもらえる**のでよかったです（ポジティブ）

###技術メンターをつくる
・違うクラスで複数インスタンスつくっちゃう😂
・画面遷移するときに遷移先のViewDidLoadでOutletが生成される前に、遷移元から呼び出しちゃってnilが入っちゃう😂
とか、とにかく１人じゃ解決できない場合。ggrksではあるものの、まじ無理なときってあります。
私は知り合いのエンジニアさんや、[teacha](https://www.teacha.me/)で探した人にカテキョをお願いしました。

##５．デザインもなんとなく整えよう
###UI
アプリストアでカメラアプリをダウンロードしまくり、参考にしました。
ぱっと見でバランスを調整できるので、コードではなくオートレイアウトで部品を配置しました。

###アプリアイコン
アプリの顔！なので妥協したくなくて、自分でラフを描いてイラストレーターさんに頼みました。
ランサーズでも探しましたがBtoBの案件が多めで個人開発アプリのイラスト作成を気軽に頼める雰囲気でなかったので笑、CtoC案件が多そうな[ココナラ](https://coconala.com/)でよさそうな人を探しました。

###色の組み合わせ
色合いの組み合わせが多数載っている書籍を買って、気に入った組み合わせを使いました。
xcodeですぐ設定できるように、色コードがのっている本を選んで正解でした◎
ちなみに[配色アイディア手帳](https://www.amazon.co.jp/%E9%85%8D%E8%89%B2%E3%82%A2%E3%82%A4%E3%83%87%E3%82%A2%E6%89%8B%E5%B8%96-%E3%82%81%E3%81%8F%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%AE%E6%9C%AC-%E5%AE%8C%E5%85%A8%E4%BF%9D%E5%AD%98%E7%89%88-%E6%A1%9C%E4%BA%95-%E8%BC%9D%E5%AD%90/dp/4797393246)という本を買いました。使いよかったです。

##終わりに
思っていた通りの機能が実装できたときのよろこびたるや✊