iOS Creators' Meetup #2 に参加しました
@kanamorit です。よろしくどーぞ。
iOS Creators' Meetup #2 に参加しました。
オイシックス株式会社 さん主催の勉強会で「iOS に興味があればどなたでも!」というものです。
主催者の @akatsuki174 さんの挨拶で開幕。
勉強会心得
友達作るの大事だから!
- 名刺交換はするでしょう
- でも名刺交換した後、それ何度触る? 触らないでしょ!?
- SNSで繋がろう
slackに参加して発言してね
- Join Oi Study on Slack!
- chいろいろあります
- 勉強会外でも利用してね!
発表一覧
- AutoLayoutのデバッグを試みる
- オブジェクト指向な人が RxSwift を試してみた
- スマホアプリディレクターが考えていること
- Realm Mobile Platform をさわってみた
- iOSアプリにおけるリリースフローとCI環境
- iOS10からのプッシュ通知再入門
- コンテキストを意識したアプリデザイン
内容も多様で、iOSエンジニアじゃないよって方も何人か発表されていました。
資料はこちらにまとめがあります。
iOS Creators' Meetup vol.2 - 資料一覧 - connpass
発表内容
AutoLayoutのデバッグを試みる
@akatsuki174 さん
実行時に AutoLayout でエラー出ることあるよね → どうデバッグしようか、というお話
- 制約ミスっててもなんとなく表示はされてるけど、実際には一部制約を勝手に取り除かれてる
- 制約問題の発見のために symbolic breakpoint を作成しよう!
- 特定位置ではなく特定 条件 で処理を止めることができる
- 処理が止まったら lldb で対象オブジェクトの背景色変更指定してみるとわかりやすいよ!
オブジェクト指向な人が RxSwift を試してみた
@grachro さん
関数型のライブラリ調べたところ RxSwift がしっくりきたので使ってみた
ココが良かった!
- オブザーバーパターンで理解可能
- RxSwift も大体同じ構造じゃん!
- メソッドチェーンは「流れるようなインターフェース (fluent interface)」じゃね?
- 参考: http://bliki-ja.github.io/FluentInterface/
- なるほどそれなら、ととっつきやすかった
- が、実際には戻り値の型が変わるのでそれほど単純ではなかった・・・
- マーブル図なら時間の流れ(経過)がわかりやすい!
- UMLで表現するのは大変だったから嬉しい><
スマホアプリディレクターが考えていること
@kurikazu さん 噂のStoryBoard120枚女子は隣の席
世の中には様々な問題がある
- 「全機能作って」問題
- 「Webと同じで」問題
- Webとアプリで揃える施策はある
- でもなんでもかんでも揃えようって思考停止になってない?
- アプリは一度機能追加すると取り除きにくい・・・
- アプリに必要なのかはまずWebで様子を見てからにしてもいいよね
- Webとアプリで揃える施策はある
- 「アプリって必要?」問題
- アプリってインストールする手間があるよね
- Web側の比率が高い場合割とネック
- アプリならではの存在感出さないと!!
- でも「スマートフォンのサービス」と捉えるとアプリって必ずしも要らないのかも?
- アプリってインストールする手間があるよね
- 「開発と企画のゴール違う」問題
- 開発としては新しい技術取り入れたい。でも企画は早く作りたい。
- 理解してもらうにはどうすれば・・・
- すごい人に聞いてみた → 「偉い人になれ!」
- 判断する人に「あいつが言うなら」と言われるよう信頼を積み重ねよう
- 開発としては新しい技術取り入れたい。でも企画は早く作りたい。
役割は違えど 思い は同じだよね
よろこばれるアプリを作っていきましょう!
Realm Mobile Platform をさわってみた
KinyoKou さん
データ同期が恐ろしく簡単にできる
- でもサーバは自分で用意するんだよ
- オフラインでも動作するよ(オンラインになった時に同期が走る)
- 手順は公式のチュートリアル見ればもう何も心配無い
- syncConfiguration で情報設定すればおk
コンフリクト解消が重要
- 基本ルール
- Deleteは常に最優先
- 同じプロパティのUpdateは後勝ち
- Insertは時系列順
- 「Update後勝ち」が曲者
- 同じプロパティを同期
- 何度か試すと先勝ちパターンもあった!?
- タイムスタンプ以外のロジックも働いているのかも
- 同じオブジェクトの別々のプロパティを同期
- 同期はプロパティ単位で行われる
- あっちとこっちで変更されて思いがけない状態になる可能性も!?
- 同じプロパティを同期
- コンフリクトの解決についてはしっかり理解してからやるべき
- 今後の公式ドキュメント要チェック
iOSアプリにおけるリリースフローとCI環境
@tarappo さん iOS Test Night #1 よろしくね!
リリースフローでコスト多くない?
- 作って端末渡して検証してバグ出た報告して端末返してとかとかとか
- コミュニケーション多い?手動多い?
- CI環境を開発メンバーしか知らないとかない?
- 開発環境全体でコンテキストスイッチ多く無い?
検証フェーズとにかく早くしよう!
- 開発は Git への Push だけ意識
- アカンかったら Jenkinsおじさん が怒ってくれる!
- コードレビューはコストかかるので静的解析やら何やらの自動でできるものはおじさんに任せる!
- ビルドやら何やらで時間がかかるなら マシンパワーを良くして時間を短くする
- 問題があれば slack に飛ぶ
- 検証は頑張る
- DeployGate での配信作業もおじさん
- バグ報告は手動><
- 報告があれば slack に飛ぶ
- アップロード
- おじさんボタンをポティットナ!
コンテキストスイッチを「その人に仕事がある時」だけにしよう
そのためには CI 環境をプロダクトに関わるすべての人に必要なものとしよう
iOS10からのプッシュ通知再入門
@jollyjoester さん Tシャツで語る「すべて熟知」
プッシュ通知は「リテンションのための唯一の手段」とも言えるくらい重要
- 基本の通知
- タイトル(iOS8.2~)
- サブタイトル(iOS10~)
- 本文
- サウンド
- バッジ
- 0指定だと通知でバッジ消せる
- アクション実行通知
- 任意の選択肢を提示できる (参考:UNNotificationAction)
- アクションのための処理をクライアントにも実装
- リッチ通知
- 画像、動画、音声を添付 (参考:UNNotificationAttachment)
- Extention により実現
(送信方法の紹介とともにデモも準備されていたが、時間が足りずだったので)
プッシュ通知送ってると楽しくなってくる
コンテキストを意識したアプリデザイン
@3mp さん
UX MILK への寄稿 & UX JAM への登壇 募集中!
UX MILK 立ち上げの理由は UX がわからなかったから
- UXという言葉大嫌いだった
- オリジナリティ溢れる、イケてるアプリを作りたい
- 自分のアプリが特別にみえちゃう病
- 独りよがりな開発
- 馴染みのない UI でユーザーが混乱
- 認知負荷 = Cognitive load
- ユーザーが欲しいのは便利なサービス体験!
- 自分のアプリが特別にみえちゃう病
- どう独りよがりデザインから脱するか・・・?
プライドを捨てて、パクるべし(但し、正しく)
- コンテキスト意識
- ライフスタイル
- いわばユーザーの利用状況
- 明確に把握すれば「MUSTな機能」が明確に
- マーケット
- 周辺サービスのトレンド・スタンダード
- フリマアプリって商品の並び方こんな感じだよね、とか
- トレンドに乗れば「戸惑いを減らせる」
- 無駄なチュートリアルもなくせる!
- 周辺サービスのトレンド・スタンダード
- ライフスタイル
- 例)UX MILK App
- 平日朝、通勤時に電車内で
- タブレイアウト、ミニマルデザインを採用
既存のアプリをパクる
- = 先人たちが切り開いたUXをリスペクト
- 通称: Paku-Respect
- ユーザーは自然に使えるものが「使いやすい」
- 考えさせないのがいいUX
- 工数削減にもなる
- モチーフあるから意思疎通が明確
- エンジニアがUIデザインを進められる
- ある程度できてから細かい部分の調整をする
こんなのはダメパクリ
- サービスのアイデンティティをパクる
- 象徴的なものは避ける
- ロゴ / マスコット / カラー / トーン など
- 象徴的なものは避ける
- 同じアプリからいくつもパクる
- 全パクリになっちゃう!
トレンドを踏襲するという気持ちが大事
まとめ
- 変なこだわりは捨てて、まずはトレンドに従う
- その上で、オリジナリティを盛り込む
- あまり主張しない程度がちょうどいい塩梅なのかも
- ローディング中とか未ロードサムネとか
- メインのユーザー体験は損なわないように!
- あまり主張しない程度がちょうどいい塩梅なのかも
感想
実践的な内容もあれば教訓的な内容もありで楽しかったです。
一番場が湧いたのは「全機能作って問題」などの苦労話だったかも。
個人的には「パクリ大事」という再確認?が納得感あって良かったです。
しかし、弊社内では「OSの世界観」と「周辺サービスのトレンド」がズレてしまっているがためになかなか悩ましい状況になってしまっていたり。。。
どういうユーザが使ってくれているか、を考えるとどうしても周辺サービスに合わせる結果となりなんだか古くささが抜けない(>_<)
新しいユーザーを獲得するためには意思決定者を説得しなければ。
そのためにはやっぱり 偉くなって 提案するしかないのだろうなぁ・・・
懇親会ではお野菜が出ましたが、これがまた美味しい。
- 生で食べられるカボチャ : カボッコリー
- 瑞々しくてほんのり甘いピーマン : アップルピーマン
(なぜラップを外して撮影しなかったのか)
特にカボッコリーは色んな味付けで楽しめるし、シャキシャキとした食感も良くて本当に美味しい!!
クックパッドにも調理法載ってるのでぜひぜひ!
カボッコリーを食べたい方は注文しよう!