Swift始めてからハマったこと時系列で全部書く

これはGMOペパボ Advent Calendar 2019 20日目の記事です。

qiita.com

Scrapboxで日報をつけている

いわゆる分報形式で、その日のタスクなどをコメント付きで残している。記録によると2019-05-13からつけている。

c16e.com

日報を書くようになった時期と、Swiftに触れるようになった時期が偶然近かったので、日報を振り返りながらSwiftでハマったことを全部書いていく。

iOS ノ キロク

07-01

  • iOSに入門したらしい

07-02

  • Xcodeのバージョンが新しすぎてプロジェクトのビルドに無限に失敗し続ける

07-04

f:id:osamtimizer:20191220180311p:plain

  • かわいそう

07-05

  • Xcodeの文字の小ささにやられる
  • swiftswitftypoしやすいことに気がつく

07-08

f:id:osamtimizer:20191220180549p:plain
めちゃくちゃすぎてウケてる

  • iOS標準のダイアログは思いの外カスタマイズできないことに気がつく
  • Terminalからcpなどでファイルを追加するとXcode側が認識してくれなくて数時間を溶かす
  • Xcodeがキーチェーンへのアクセスを要求するダイアログが無限に出続けて、全てが終わる

support.apple.com

07-08

  • 15インチの画面でXcodeを使いこなすのは無理だと理解した
  • キーチェーンを抹殺した(治安)

07-11

  • AutoLayoutの存在に気がつく
  • CSSでハマりまくった過去の記憶が蘇る

07-12

  • 初めてiOSアプリのPRレビューをする

07-17

  • Schedulerの存在を知る
    • 知ったからと言って何かができるわけではない

07-18

  • SequenceObservableの違いって何...?
  • [weak self]を書き忘れて数時間を溶かす
  • TestFlightの使い方を覚える

07-19

  • RxMarblesを読んで理解できるようになる

rxmarbles.com

07-22

  • Hot / ColdなObservableがどうやら違うらしいことに気がつく
  • Driverが存在する理由が分からず、1日が終わる

github.com

07-23

f:id:osamtimizer:20191220181533p:plain

  • 充電しながら電池残量が減っていく恐怖

07-25

f:id:osamtimizer:20191220181626p:plain

  • 勝手にXcodeがアップデートされて営業終了

08-06

  • Swiftばっか書いててRubyの書き方を忘れる

08-07

f:id:osamtimizer:20191220181924p:plain

  • CollectionViewに入門し、無事致命傷を負う
    • 登場人物が恐ろしく多い
      • CollectionView
      • CollectionViewCell
      • CollectionViewDelegate
      • CollectionViewDataSource

08-23

  • 初めてDecodingErrorに遭遇する

09-04

  • CollectionViewDataSource、これのどこがデータソースなんだ...となる
  • 大量のfunc collectionView Delegateが出てきて頭を抱える

09-05

  • CollectionViewCellのタップイベントをRxSwift経由でViewControllerに伝搬させる実装をして、精神を消耗する

09-09

  • CollectionViewで使うCellをregisterしないといけないことに気がつかず、数時間を溶かす

10-24

f:id:osamtimizer:20191220182703p:plain

  • Observableを返すObservableの扱いにflatMapが必要なことを知る

10-28

  • masterブランチをぶっ壊す(すみませんでした)

10-29

  • CompletableTraitSingleTraitの使い分けに悩む

github.com

11-01

  • ShareReplay完全に理解した(と書かれている...)

11-11

  • クソデカViewControllerを爆誕させる
    • CollectionViewがそもそもデカいのが問題...

12-04

  • BridgingHeaderObjective-Cのライブラリをimportできることに気がつく
    • Frameworkを超えてimportするにはそれぞれの設定に利用するBridgingHeaderを指定しなければいけないことを知る

developer.apple.com

12-05

  • CocoaPodsが勝手にいろんなことをやってくれるおかげで、Frameworkをまたいでライブラリを共有させるのにハマる

12-13

  • 謎のDecodingErrorに人生を消費させられる

おわりに

書き出してみたら意外とアッサリだったけど、分量の10倍ぐらいハマってたと思うので安心してほしい。

日報を読み返した感じでは、前半はObservableに消耗して、後半はCollectionViewに消耗していた。きっとiOSを始めた人はみんなそうなるのでしょう。

とはいえ、継続的にRxSwiftを触っているとある日Observableの気持ちがわかるようになるはずなので諦めないでほしい。

Observableの基本については以下の記事にまとめてあるので、気になった方は読んでみてほしい。

osamtimizer.hatenablog.com

これはGMOペパボ Advent Calendar 2019 20日目の記事でした。

qiita.com

明日の担当は@UVB_76です。ご期待ください。