2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOSのUITableViewが難しい話 (初心者向け)

Last updated at Posted at 2016-07-30
1 / 29

iOSのUITableViewが難しい話

Mobile Act NAGOYA #1でのLTの内容をQiita用に投稿します。


自己紹介

  • 龍一郎 (@K_Ryuichirou)
  • エンジニア(主にiOS, ARも少々)
  • アプリ開発勉強会を開催中 (2016/3〜)
    • Nagoya.Swift+
  • 最近Doorkeeperを使い始めました

今日の内容

  • iOSの学習でつまづきがちな箇所について共有
  • 実際に勉強会で課題になった箇所について共有します
  • 学習者から見て、何が難しいのかについてお話します
  • 解決策については対象外とします

勉強会のご紹介

  • Nagoya.Swift+
    • 2016年3月から毎月一回開催中
    • 向上心と好奇心を満たすため、分野を超えて挑戦するフリをして遊びます
  • メンバー:11名
    • 主に主催の個人的な知り合い
  • 内容: Swift, Unity, 機械学習など各自が気になったもの
  • 後援: idea+ (http://www.idea-plus.biz/)

勉強会の参加者

  • 参加者のうち、ほとんどがIT系エンジニア

  • 普段は開発をやっていない方々がメイン

    • 開発経験者も「書くこともある」程度
  • 入門書を書き写したりして勉強する方が多め

    • 自分でテーマを設定して学習する人も

勉強会の風景

image.jpeg


iOS学習時によくある問題

  • 入門書のサンプルアプリ1〜2個はできた!
  • Hello, world.的なアプリはOK
  • if文、while文とかもOK
  • クラスの定義も書いた

UITableViewを使ったアプリをやる!


なぜか動かない


どうすればいいのかわからない


FIN.


ありがちな症状

  1. 何を言っているのかわからない
  2. 何をやっているのかわからない
  3. なぜ動かないのかわからない

1. 何を言っているのかわからない


原因1. 用語の急な増大

  • 入門書でも3ページでこれだけ増える
    • UITableView
    • UITableViewController
    • UITableViewCell
    • UITableViewDelegate
    • UITableViewDataSource
    • delegate
    • dataSource
    • プロトコル

原因2. デリゲートの多義性

  • 油断すると全部「デリゲート」と言ってしまう

    • UITableViewのプロパティ(delegate)
    • UITableViewDelegateプロトコル
    • デリゲートパターン
  • 「UITableViewのデリゲートを設定する」はどれ?


2. 何をやっているのかわからない


原因3. InterfaceBuilder

  • StoryboardでUITableViewのプロパティを設定する操作が、それと気がつきにくい
  • 更に知っている人は「UITableViewのデリゲートを設定すればいいよ」とか言ってしまう
  • Storyboardを使うなと言っているわけではない

原因4. デザインパターンの壁

  • デリゲートでデザインパターンが初めて出てくる
  • 初心者向け書籍では解説されない
    • 良くて「デリゲートは処理を他のクラスに移譲することです」程度
    • 全くない場合もままある

原因5. フレームワークの壁

  • MVC的な考え方をここではっきり意識することになる
    • ViewとViewControllerの違いがわからなくなりがち
  • 当然、初心者向け書籍では解説されない

3. なぜ動かないのかわからない


原因6. UIに関する部分のデバッグが難しい

  • Storyboardの設定ミスではアプリが黙って落ちる
  • コードを逐次実行していくとAppDelegateで落ちる
  • 書いていないところで落ちて何が何だかわからない

原因7. 入門書が間違っている

  • なぜかUITableViewになると解説書の間違いが多くなる
  • 今までと同じ方法で動かなくなるのは大変なストレス

原因8. コードが悪いのか自分が悪いのかわからない

  • 「こんな簡単なことを聞いていいのか」となりがち
  • Webサイトのコードが動かなかった場合に発症
    • 大概、サイトが悪いけれどそれがわからない
  • 特に書籍のコードが動かなかった場合に被害が深刻

解決策


image.jpeg


解決の方針

  1. 何が難しいのか共有する
  2. 何故それが難しいのか解説する
  3. その難しさにどう対処しているのか解説する

まとめ

  • これから書く人向け: UITableViewはむずかしい
    • 1人で理解しようとしてえらいことになりました
  • 書ける人向け: UITableViewはむずかしい
    • その難しさを分析できるだけの能力があるはず
    • 初心者の視点から解説するの大事

向上心と好奇心を満たすため、分野を超えて挑戦するフリをして遊びましょう

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?