とりあえずやってみればいいじゃん

読者です 読者をやめる 読者になる 読者になる

とりあえずやってみればいいじゃん

エンジニア関連のことについてつらつら書くブログ

7/2 Swiftビギナーズ勉強会 第15回に参加してきました

勉強会の説明

www.slideshare.net

  • この勉強会の目的
    • 未経験者がiOSアプリで開発を行えるように
    • セッションがうまくなること
    • 交流して仲間を増やすこと
  • セッションについて
    • 初学者でも気軽に「講演」できる
    • 発表することでスキルアップが図れる
    • 講演の練習をしたい方もOK
  • YouTube公式チャンネル
    • 「Swift ビギナーズ 倶楽部」で検索

ショートセッション

インクリメンタルサーチでサクサク検索を実現しよう」 耿 金洋さん

www.slideshare.net

  • モチベーション
    • 家にある材料から作れるカクテルが知りたい
    • 自前のカクテルレシピも登録したい
    • うちカクというアプリをリリース
  • incremental search?
    • googleの年間検索数は「少なくとも」2兆回以上
    • 自分の一週間の検索回数:370回
    • 検索文字列の入力の途中でリアルタイムに結果を表示する
    • UX的にもインクリメンタルサーチはいい
  • サンプルアプリ
    • 1.UISearchBarDelegateプロトコルの準拠&UISearchBarのOutlet接続
    • 2.リターンキータップ時に実行されるメソッドの実装
    • 3.テキスト編集時に実行されるメソッドの実装
    • 4.クリアボタンタップ時に実行されるメソッドの実装
    • 5.平/カナ、大/小文字関係なく検索可能にする
      • Unidoce持ってきて、ひらがなの範囲だったらカタカナに、カタカナの範囲だったらひらがなに直している
  • まれに特定メソッドの実行が失敗する
  • →テキストエリアと予測で出てきているものが異なってもクラッシュしないような設計にしておくこと

インクリメンタルサーチってもっと難しいことやらなければいけないのかと思ってましたが、意外と仕組みとしてはシンプルなんですね!ちょっと試しに作ってみたくなりました。

「多人数iOSアプリ開発を考える」佐々木 勝広さん

www.slideshare.net

SwiftLintについては以前このSwiftビギナーズで私も発表していますが、やはりこのような基準がきちんとあるといいですよね。実際、Lint導入する前とした後では心持ちも違いましたし。

「Swiftのクロージャーで苦労じゃ〜」 柿本匡章さん

  • Swift難しい四天王
    • Optional / closure / protocol / guard
  • クロージャー=名無しの関数
  • { -> in }を見たらクロージャーだと思え
  • クロージャーの省略記法は複数ある
  • クロージャーの使いどころ
    • コールバック / 非同期処理
    • リアクティブプログラミング
    • map / filter / reduce
  • 接尾クロージャ
    • カッコを省略しない場合、メソッドのカッコの外にクロージャーを書ける

具体的なコードはスライド中に書かれているのでご参照ください。

確かに最初クロージャーは意味がわかりませんでした。。。クロージャーってこういう書き方するんだ、と覚えたと思ったら、別の書き方があったり。

「Swift3.0が出る前に 基礎の見直し:guard」七島偉之さん

  • 1年前->今回
    • 開発者の工夫で頑張っていたことを言語側でサポート
    • letとvar 、structとclass、Optional
    • [今回]異常系と正常系
  • guard
    • Early Exit
    • 要はifみたいなやつ
  • (スライド)その1、その2
    • 中身の文字列があったら処理をするという時
    • やりたいことがすごく長かった時に困る
    • strがnilの時に特別な処理があるのかどうかがわかりにくい
    • →異常系を早めにreturnしてしまう
    • 以降何もしないということがわかる
    • ネストも減る。
  • (スライド)Swiftでもその1、その2
    • 単なるifだと下でまたunwrapしなければならない
    • guardなら中括弧を抜けたあと、アンラップした値が使える
  • true / falseになるものであれば良いので#available(,)も使える

最初guardじゃなくてもifでええやんとか思ってましたけどじわじわとその便利さ、有能さがわかってきて今では素晴らしいと思っています。読みやすいコード、エラーを起こしにくいコードのためには欠かせませんね。

懇親会LT

一度乾杯をして、いいかんじに酔ってきたところで懇親会LTが実施されました。お酒を飲んだ後だったしなごやかモードだったのであまりメモは取れていませんw

「日本の祝祭日を計算してカレンダ-に表示するアプリサンプル」酒井さん

www.slideshare.net

  • 家計簿アプリにカレンダーを入れたくって試行錯誤した
  • 日本の祝祭日まで考慮したカレンダーがなかったので自分で作った
  • Qiita
  • GitHub

「キャリアとアプリの アップデート」永田さん

www.slideshare.net

  • やりたいことをやりたくて小売業から離れる
  • RainbowAppsにて受講
    • →面接を受けるも「それじゃ足りない」と言われる
  • 職業訓練校でAndroidアプリ作成
    • →まだ足りない
  • RainbowAppsにてSwift習う
    • →スカウトをもらった
  • 給料増やしたい
  • 6月の活動
    • アプリをリリース。4回アップデート
    • クラッシュが起きたことも
    • →AppleIDが違ったことが原因
    • WI-Fiでは問題ないけどLTEではダメというのはAppIDが原因のこともある
    • 証明書の期間がすぎている場合も起こりうる

藤さん

iOS10を入れたとのことで、実際にいじって見せてくださいました。

  • Apple Developer ProgramにてConfiguration Profileをクリックしたらアップデートできる
  • 前のバージョンに戻せるっぽい
  • Messenger
    • スタンプがデフォルトで入ってる
    • 手書きの動画みたいなのが送れる
    • サンプルアプリ
  • コントロールセンターが2ページになっている

「あるりんごとの戦い記録」須藤

私が飛び入りでApple審査事例について発表しました。飛び入りなので以前別の勉強会で発表した時の資料を使いました。資料やまとめ等はその時の勉強会参加レポートをご参照ください。