Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidアプリエンジニアがSwiftを読むときのギモン / swift_question

uhooi
February 21, 2023

AndroidアプリエンジニアがSwiftを読むときのギモン / swift_question

potatotips #81 iOS/Android開発Tips共有会
https://potatotips.connpass.com/event/272353/

## 参考リンク

- 個人 iOS アプリ
https://github.com/uhooi/Loki

- `.init()` の記事
https://qiita.com/uhooi/items/1cac84c2918be563941b

uhooi

February 21, 2023
Tweet

More Decks by uhooi

Other Decks in Programming

Transcript

  1. Android アプリエンジニアが

    Swift を読むときのギモン
    2023.02.21(Tue) potatotips #81 iOS/Android開発Tips共有会
    @the_uhooi

    View full-size slide

  2. iOS app developer @uhooi
    @uhooi
    @the_uhooi

    View full-size slide

  3. みなとみらい最高!

    View full-size slide

  4. 話す内容
    私の個人 iOS アプリを

    現役 Android アプリエンジニアに

    読んでもらって出てきた疑問を

    紹介します

    View full-size slide

  5. ・モジュール分割・アーキテクチャ・命名 を

     Android と完全に揃えた


    →これで読みづらい箇所が Swift の言語仕様に

     ある程度絞れるはず…!
    私の個人アプリ

    View full-size slide

  6. Q1
    iOS ってよく Router というのが

    出てくるよな〜

    View full-size slide

  7. Q1
    iOS ってよく Router というのが

    出てくるよな〜
    Router は Android でも使うのかと

    思っていた

    View full-size slide

  8. Q2
    protocol は確か interface のこと

    だったっけ?

    View full-size slide

  9. Q2
    protocol は確か interface のこと

    だったっけ?
    そう!

    (強い人に怒られるかもだけど)

    View full-size slide

  10. Q3
    画面に表示する要素を UiState と

    しているのも合わせている?

    View full-size slide

  11. Q3
    画面に表示する要素を UiState と

    しているのも合わせている?
    そう! iOS だと VM に単体のプロパ
    ティとして持たせることが多い

    View full-size slide

  12. Q4
    case .new: のように唐突なピリオド
    が多い

    View full-size slide

  13. Q4
    case .new: のように唐突なピリオド
    が多い
    唐突なピリオドは enum で型を

    省略するときに使う!

    View full-size slide

  14. Q5
    \.index の意味がわからない

    View full-size slide

  15. Q5
    \.index の意味がわからない
    「KeyPath」という概念で、正直

    オレもよくわかっていないw

    View full-size slide

  16. Q6
    とにかく記号がわからん。

    Swift って記号多い?

    View full-size slide

  17. Q6
    とにかく記号がわからん。

    Swift って記号多い?
    確かに省略や記号が多いかも。

    言われて気づいた

    View full-size slide

  18. Q7
    永遠の謎だけど .init() だけの

    表記がわからない

    View full-size slide

  19. Q7
    永遠の謎だけど .init() だけの

    表記がわからない
    型を省略したコンストラクタ的な。

    詳細はワイの記事を見て

    View full-size slide

  20. Q8
    extension で表現するのわからん。

    メリットあるの?

    View full-size slide

  21. Q8
    extension で表現するのわからん。

    メリットあるの?
    プロトコルを1つずつ準拠させると

    メソッドの紐付きがわかりやすい

    View full-size slide

  22. Q9
    なんで isNotEmpty を使わずに

    !saunaSets.isEmpty とするの?

    View full-size slide

  23. Q9
    なんで isNotEmpty を使わずに

    !saunaSets.isEmpty とするの?
    そんなものはない

    View full-size slide

  24. Q10
    似ている部分があると気になって

    集中できない

    View full-size slide

  25. Q10
    似ている部分があると気になって

    集中できない
    なるほど参考になる

    View full-size slide

  26. Q11
    すごいまじでなんとなく読める。

    Android に寄せると読めるんだな

    View full-size slide

  27. Q11
    すごいまじでなんとなく読める。

    Android に寄せると読めるんだな
    (この言葉を待っていた…!)

    View full-size slide

  28. ・Android に寄せると何となく読める

    ・でも言語仕様がわからないと完全には読めない


    ・みんな Swift にも入門しよう!

     待ってるよ!
    まとめ

    View full-size slide