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 Slide

  2. iOS app developer @uhooi
    @uhooi
    @the_uhooi

    View Slide

  3. みなとみらい最高!

    View Slide

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

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

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

    紹介します

    View Slide

  5. View Slide

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

     Android と完全に揃えた


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

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

    View Slide

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

    出てくるよな〜

    View Slide

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

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

    思っていた

    View Slide

  9. Q2
    protocol は確か interface のこと

    だったっけ?

    View Slide

  10. Q2
    protocol は確か interface のこと

    だったっけ?
    そう!

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

    View Slide

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

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

    View Slide

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

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

    View Slide

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

    View Slide

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

    省略するときに使う!

    View Slide

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

    View Slide

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

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

    View Slide

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

    Swift って記号多い?

    View Slide

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

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

    言われて気づいた

    View Slide

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

    表記がわからない

    View Slide

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

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

    詳細はワイの記事を見て

    View Slide

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

    メリットあるの?

    View Slide

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

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

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

    View Slide

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

    !saunaSets.isEmpty とするの?

    View Slide

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

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

    View Slide

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

    集中できない

    View Slide

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

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

    View Slide

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

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

    View Slide

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

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

    View Slide

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

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


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

     待ってるよ!
    まとめ

    View Slide