20時間タイマーを60時間で作る ~セルフ開発合宿のススメ~
本日ようやく、ようやく・・・自分で開発したアプリがリリースされた。
うれしい・・・App Storeに自分のアプリが並んでるの嬉しい。
心を何十回と折られたけど諦めずに出せてよかった・・・・・・
この嬉しい気持ちを忘れないうちに書くことに決めました。
1.0 何を作ったのか
今回は20時間タイマーを作りました。
コンセプトは
○自分のやってきたことを可視化するできるもの
○ただのTODOリストではなくて、自分の進捗を管理できるもの
○努力を楽しくコレクションできるもの
を目指しています。
一覧画面では
自分がその目標のために何時間使ったのかということがわかるようにしてます。
目標を書いてタイマーをスタートすることで、目標を見失わずに20時間使えるようにしました
1.1 年末年始休みとセルフ開発合宿
年末年始は実家に帰らず、ずっと自宅で引きこもってセルフ開発合宿を予定していましたが、特にテーマが決まらず、どうしようかなと悩んでいました。下記記事、個人開発のすゝめを読んで
個人開発はいいぞ、気になるなら御託並べてないでアプリ作ってさっさと公開しようぜ!
何かしらを作ろうとは思っていました。
二年間iOSエンジニアをやってみて、
○先輩たちがきれいに整備しているアプリを修正するということから始めてしまっているので、最初から作るという経験が無い。
○一から作った、全部作りきれたという経験がないため、なんとなく技術力に自信がついてこない。自分が成長しているという感覚が薄くて、このままでいいのかと怖くなる。
○最初から設定したこと無いからiOSの証明書周りがやたら怖い
○かといって、作りたい、やってみたい、ストアに出してみたいと心から思えるアプリのアイディアが無い
二年間ずっと自信がもてませんでした。
ずっと自分の中で、エンジニア方面の得意なことを探し続けているが、本当に見つからなくて困っています。
自分が得意なことは、1ミリも役に立たないものばかり。
優しくて尊敬するチームメンバーに囲まれてるのに、何も貢献できなくてしんどさをずっと感じていました。
でも、こうやって100%自分のためだけに時間を使えるのも、今だけだと思って、何かこの正月休みで自分を変えることができたら良いなと思いました。
1.2 なぜ20時間なのか
iOS開発者の堤修一さんの下記ブログを拝見して、特に印象に残ったのは20時間の法則の部分でした。下部で引用しています。
20時間の法則
・20時間:未経験の人から見ると「すごい!」っていうぐらいのレベルにはなる
・これくらいでも仕事を獲得できる
- やれる人がいないところを狙う
- 自分の得意分野と組み合わせる
- 成功報酬を提案する
- とにかく依頼側にメリットが有り、損/リスクがなければ仕事になる可能性がある
これを見て、20時間という単位を計測したり、蓄積することができれば自分の中でも自信につながるなぁと思いました。
しかし、どうやってその蓄積を可視化できるだろうかと考えました。
メモを取るのもだるいしし、Googleカレンダーに記録するのもなんか違うし達成感を得られない・・・ 🤔
・・・・
・・・・・・・・あっ
そうか、20時間で20時間タイマーiOSアプリを自分で作ればいいのか
即座にXcodeで新しいプロジェクトを作り始めました。
ちなみにこの20時間の法則はジョシュ・カウフマンがTEDで発表していた内容でした。
最初の20時間 — あらゆることをサクッと学ぶ方法 | ジョシュ・カウフマン | TEDxCSU
↑のような図を作ってApp Storeにあげておいた。
2 実際に作るときの壁
2.1 要素をいろいろ詰め込みたくなる病
例えば開発を始めた当初は
・RxSwift+MVVMで作る練習をしようかな(やったことない)
・CIはどこを使おうかな、どの程度までやってみようかな
・やったことないしテストも書いてみたい
・せっかくだから自作ライブラリを組み込みたい(やったことない)
・あのアプリみたいにキーボードの上にツールバー載せて、そこでタスクを記入できるようにしたい。(やったことない)
・チュートリアル画面作りたい(やったことない)
すごく夢だけが膨らんでいって、自分の中でハードルを上げてしまう
↓
この途中のどこかで心が折れて結局世の中に出せない
これをやめようと思った。
なので今回の目標は
20時間でとにかく世の中に出す。
クオリティとかなんでもいいから世の中に出す。
できなかった機能は諦める or 次のバージョンアップで頑張る
だいたい20時間で作れそうなものでできそうなテーマだったのに、40時間もオーバーしてしまったのは、よく知らないライブラリをかっこいいからと言う理由で使ってしまって詰まったり、キーボードの上にツールバーを載せて入力させようとしたりで時間を食ったからである。
そういう詰まったときは、そもそも・・・この機能いるかな?
この機能だけあればとりあえず良くないか?
まずはAppleの審査を通すことが目標でしょ
って心の中で唱えていた。
2.2 一人で開発するということ
自由に作れるから色々試せて楽しいという代わりに
詰まったら自分で解決しなきゃいけないという辛さもある。
今回だと、とあるライブラリを使っていて、コア機能に関わるところだったのに、なぜかそのライブラリを使っているとStoreに上げれなかった
(結局原因はわからなかった・・・・)
もうアプリは完成しているのに、ここで諦めたくないとおもった。
だが、App Storeに上げられないアプリ・・・・・・・・・・・・・・・
落ち着いて考えてみるとそのライブラリって絶対使う必要あるかな・・ 🤔
ライブラリの一部の機能しか使ってないし、これだけだったら自作できるんじゃない?と考え直して、作り直した。
もしあの時、このライブラリで上げれないのはなぜなんだろう・・・・って
解決策を探していたら、いまここで、App Storeに上げられた喜びをこのnote書けているのかはわからない。
諦めて別の道を探してみるというのも目的を達成できるならなんでもいいんだと学ぶことができた。
↓苦しみ中のツイート
2.3 Apple税が高い
個人開発をするにあたり、ちょっと壁だよなって思うのがApple Developer Program登録料11,800円
年間だからなぁこれ・・・
しかも、証明書周りを頑張るのが登録料を払った後だから、このApple税はらって心が折れた人も多いんじゃないかしらと思ったり。
せっかくアプリを完成させてもストアに上げられないとか、Appleの審査が通らないとか・・・・
ある意味、1万も払えば絶対出してやるぞって覚悟もきまるけど・・・
(最後がしんどかった)
3 リリースを乗り越えてみての感想
やっぱり、世の中に自分の作品が出て、iOSの端末だったらどれでも動くものが作れて、しかもそれが誰かの役に立つかもしれないというのは、iOSエンジニアは夢のある仕事だなと思った。
3.1 自信につながった
自分でもできるじゃんってようやく思えた。証明書周りもやってみたらそこまで難しくないし、知らないことに対してすごく恐れを抱きやすい体質なのかもしれないと思った。
あと割と自分は忍耐力と継続力あるなとおもった。
これだけは達成したいという目標を達成できると、めちゃくちゃ充実した時間を過ごせた気がする。
3.2 試してみたいことを自由に試せた
今回はDeployGateという配信サービスを使ってみようかなと思い、テストアプリを友達に試してもらった。
配信の簡単さにびっくりしたし、自社で使っていないサービスを使うことで自分で知らない世界を切り開いた感覚がしてよかった。
また、今回はコードをじっくり自分の血肉にするというのを重視ししていて、ドキュメントをしっかり読んで、わからないことを調べて少しずつ前に進めた。
なんとなく、こうすればできるけど・・・本当にドキュメントには書いてあるのかなぁ?とか、ちょっと調べてみようかなと立ち止まれた。
なんとなく現場だと焦燥感に駆られて、ドキュメントを読み込むという基本的なことをなおざりにしていたのではないかなと反省した。
だから二年間伸び悩んだのではないか・・・とも思った。
ドキュメントを読んでいろいろ調べてみると楽しいことがわかった。
基本的にQiitaはわからなかった過去の自分へのお手紙という気持ちで書いている。
やっぱりわかるって楽しい。
できるようになるって楽しいと思った。
エンジニア向いてないんじゃないかずっと悩んでいるんだけど、技術を楽しむことはできるということは分かった。
3.3 100%自分のために使える時間があるということ
幼少期の頃8時間くらいずっとゲームをし続けられたあの集中力。
一日中本を読んでいた集中力。
アニメを夜中3時まで見れた集中力
大人になってしまうと、大事なものが増えてきて、なにかに打ち込む、何かに時間をかけるということができなくなってしまった。
なにかに時間を集中して使えるとかなにかに熱中できるって、ある意味才能だと思っている。
昔はできたのに今なんだかできなくなってしまったなぁと寂しく思った。
今回年末年始の冬休み期間を使って、100%誰にも邪魔をされない、自分のためだけの自分の時間を作ってアプリを作るということに熱中した。
もし、自分が誰かと一緒に住んだり、家庭を持ったりしたら、きっと100%自分のために時間を使うということはできなくなるだろう
だから、今、これができる今やっておこうと思った。
100%自分のために時間を使えるって
実はとても幸せなことなのではないか
これに気がついた年末年始休暇でした。
4 リリースしてStoreでさがす
App Storeに自分のアプリが検索して出てくる喜び・・・・
でてきた・・・泣きそう
ダウンロードリンクはこちら
バグっているところがあるから直してほしい、
もっとこうしたほうがいい、
こういう機能があるとうれしいなど、
ご意見あれば是非お聞かせください
セルフ開発合宿とても楽しかった
次はGWにがんばります!!