Edited at

【第20回】potatotips(iOS/Android開発Tips共有会) まとめ

More than 3 years have passed since last update.



  • 【第20回】potatotips(iOS/Android開発Tips共有会)に「ブログまとめ枠」で参加しました

  • まとめはQiitaでもOKとのことなので投稿します

  • 発表を聞きながらメモったことをふんわりまとめてあります

  • 発表者の発言そのものではない点、ご注意ください

  • お気づきの点がありましたらお気軽にコメントおねがいします!


発表一覧

https://github.com/potatotips/potatotips/wiki/potatotips-20


会場


ここから本題


1.@sakmtech 『Core Spotlight Optimization』 iOS


  • 作ってます → 時短美人〜ダイエットや美容・健康情報ぎっしりの女子力UPアプリ!〜

  • Voyage Groupの新人エンジニア

  • Core Spotlight iOS9 beta5時点の動作です

  • どうすれば検索結果の上位に表示されるかまとめてみた

  • あとに登録したものが優先

  • 同じ文字列を大量に含んでいても最初にマッチした位置で判定

  • ひらがな⇔カタカナはもちろん、ひらがな→漢字も一部対応

  • タップされたものはトップヒット

  • 先にインストールしたアプリが優先。item登録タイミングは関係なし/(^o^)\

  • CoreSpotlightは先にインストールさせたもの勝ち?/(^o^)\


2.@mo_to_44 『watchOS1のアプリをwatchOS2移行する』 iOS


  • 今回の発表はデータ管理の部分がメイン

  • WatchOS2

  • Appleオフィシャル資料あんまない?

  • WatchKit Development Tips は2015/08/10朝時点ではwatch1の情報なので気をつけてください(´・ω・`)


3.@kgmyshin 『just in line』 Android


  • つくったよ → Goreinu

  • disる時はやさしくお願いします

  • 厳粛な雰囲気過ぎて吐きそう

  • Leak Canaryえげつねェ…

  • 僕の思う良いライブラリ

  • 1.メンテされてる

  • 2.目的が明確

  • 3.直感的

  • 4.使っても侵食されにくい(取り替えやすい)

  • 5.コンパクト

  • Leak Canaryの上手いところ

  • ライブラリだけど専用の画面を用意した

  • デバッグcompileとリリースcompileに分けた。リリースcompile小さい

  • Goreinuつくったよ

  • AndroidでDBとかキャッシュを取り出したいときに使えるライブラリ

  • 1行だけのライブラリはやっぱりカッコイイ


4.@yimajo 『とにかく明るいCore Spotlight』 iOS


  • つくってます → エンジニアアウトプットランキング - Stargazer

  • ハッシュタグでつぶやくと、発表中のスライド上部に流れるという遊び心

  • みんな弾幕に夢中で発表に身が入らない

  • そのスライドの作り方知りたい

  • 🍣#potatotips

  • NDA関連についておさらい→今回の発表はWWDCにあったものなのでOKです

  • Core Spotlightどんなときに便利?→電子書籍の検索とか!

  • iBooksとKindleどっちで保存したか分からない...→ Spotlightで横断検索できるといいね!

  • iOS9-day-by-dayのサンプルコードが参考になる



  • 結構バギーです。再起動が必要になったり

  • 設定画面のラインスタイル>「メニューバーの上」を選択すると、Keynote発表中でも流れます

  • 🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣#potatotips


5.@tarotaro4 『How to test GPS on Emulator』 Android


  • みなさんMacばっかりですね…(´・ω・`)

  • Genymotion(Androidエミュレータ)について

  • Androidのエミュレータ、良くなってきてはいるけどイマイチですよね

  • Genymotionはいろいろできる。Macでも使える

  • GPSやバッテリーのステータスも変えられるよ

  • ただし無料版でも登録必須(´・ω・`)

  • ビジネスは有料→年間にするとなかなか高い(´・ω・`)


6.@horimislime  『国際化tips』 iOS


  • 作ってます → トレタ

  • 絶賛英語版つくってます

  • 言語リソース分けてるし大丈夫だろ・・

  • なんてことはない

  • 「姓」「名」の順で表示→英語版では「名」「性」の順に表示せな!

  • 地味に「~様」「Mr.~」もあるぞ!

  • NSPersonNameComponentsをつかえばOK

  • ただしiOS9.0以降

  • NSPersonNameComponentsを将来的に使うことを見越して、今から移行しやすいクラスを作っておくのはアリ

  • stringsdistで複数形単数形の対応が楽になる

  • NSDateInterverFormatterも便利(iOS8以上)

  • リリースしたけどリリース毎の翻訳作業が重荷に…(´・ω・`)

  • 翻訳支援サービスを検討中。目をつけてるのはCrowdin。翻訳の漏れを可視化できる

  • 他言語化より無言語化

  • 言葉を減らしていくの最強(`・ω・´)


7.@aki_sh_7 Android Mのruntime-permissionに潜む罠 Android


  • メインの仕事はセキュリティ。Android開発のセキュリティガイドライン作ったりとか

  • アプリ開発者に小言を言う役割です(`・ω・´)

  • 新パーミッションモデル。iOSに近くなった

  • インストール時ではなく、利用時に許可を求めるようになった

  • 変更可能(ただし、一部のパーミッションのみのみ)

  • アプリの動作に対するユーザの決定権が大きくなった

  • 変更可能なパーミッションはグループ単位で設定されます

  • 1つの変更でグループ全体に影響が及びます


  • 問題点:許可済みパーミッションとユーザの認識のズレ

  • 「要求された箇所の機能使うためにパーミッションが必要」という説明だけではなく、「パーミッショングループを許可することによる影響」についても説明するのが親切

  • 「今後は確認しない」も同じパーミッショングループすべてに適応される(´・ω・`)

  • 軽減策

  • 表示しないとしたときのメッセージで説明する。復活させるための手順をヘルプで表示。きちんと誘導しましょう。


8.@tomzoh 『PUSH通知証明書作成ツールを作った』 iOS


  • つくりました → monotty

  • 団長!

  • iOSの証明書作成つらい

  • 自社アプリだと1年に1回の更新で良いが、受託開発だと3ヶ月に1回くらいやってる

  • お客様「Macないです」

  • お客様「コマンドラインってなんですか?」

  • (´・ω・`)

  • Web GUIから証明書作るツール作りました

  • PUSH通知のテスト送信もできます

  • 実機デモ


9.@izumin5210 Why 『don't you use enum ?』 Android


  • 学生です。Wantedlyさんでアルバイトしてます

  • 普段はRubyメイン

  • \enum/

  • type safe!! type safe!! type safe!!

  • Event Handlingにenumを使うと良い(`・ω・´)

  • テストもしやすい


10.@kitasuke 『Swiftでコマンドラインツールを作る』 iOS


  • Because ... First step to use Swift in your project!

  • Carthage見ればだれでもコマンドラインツール作れるよ

  • Carthageは最初の方のコミットがすごく丁寧で、これ見るのが最強

  • 設定に罠が

  • 罠1.コマンドライン作るんだから『Command Line Toole』を選びますよね。→罠

  • 罠2.Embedded Content Contains Swift CodeがデフォルトNOなのでYESへ

  • とりあえずCarthage見ればなんとかなる

  • 発表用のデモ


11.@rejasupotaro 『温かみのないコードレビュー』 Android


  • つくってます → 海外向けcookpad

  • コードレビュー前の静的解析

  • PMD & Checkstyle → Use formatter

  • FindBugs → 誤検出

  • Infer → まだまだ開発途中

  • 誤検出はモチベーション下がる(´・ω・`)

  • クックパッドでは、Pull Request→dokumi(毒味)という社内チェックツールが走る

  • 温かみのないコードレビューは機械に任せて、人間のコードレビューでは本質的な議論しようぜ(そんで褒め合おうぜ!!)

  • ソースレビューでは褒めたほうが開発者のモチベーション上がるよね


12.satoshi0212 『2時間の暗号化済み動画データはどうやって再生するのか』 iOS


  • つくりました → 動画再生アプリ

  • スライド映らないけどがんばる(`・ω・´)→写った

  • 要件1.2時間再生できるようにしてほしい

  • 要件2.データは必ず暗号化してくれ

  • 要件3.オフライン再生したい

  • HLS (Http Live Streaming)つかいました

  • STEP1.データ分割

  • STEP2.暗号化キーファイルを暗号化

  • STEP3.iPhone内にhttpサーバ建てる

  • iPhone内にcocoaHttpServer建てるという離れ業

  • STEP4:復号化

  • STEP5:再生

  • 独自プレイヤー作らずとも2時間超えの暗号化済み動画データ再生可能ですよ


13.@wasabeef_jp 『Naming Rule in res/layout』 Android


  • スライド映らないけどがんばる(`・ω・´)→写った

  • layout.xmlの命名規則は?

  • layoutディレクトリ配下にサブディレクトリ切れない。つらみ

  • Pluginでいい感じに整理できるといいな

  • 1年以上ずっと作ろう作ろうと思っていた

  • そしてついに...

  • 見つけました

  • folding-plugin

  • 素敵


14.@huin 『SFSafariViewControllerとOAuth』 iOS


  • つくってます → ファッションフリマアプリ フリル

  • Androidエンジニアですけど今日はiPhoneの発表

  • OAuth認証どうやって実装してますか?

  • よくある実装:アプリ内WebViewをモーダル→ユーザが入力→アクセストークン拾って終了

  • 表示しているページが本物かどうかは開発者を信用するしかない(悪意のある開発者なら偽ページ表示できる)

  • セキュリティに厳しい人からはマサカリが飛んでくる実装

  • SFSafariViewControllerをOAuthに使えば安全

  • 実機デモ(OAuth2)

  • 単純にSafariでいいのでは…?→SafariによるOAuthでリジェクトされたという噂も。

  • ほかにも遷移が楽などSFSafariViewControllerのが良さそう


15.@satoshun_xyz 『Android Support Annotationsについて』 Android


  • kotlinかわいいよkotlin

  • Annotationsを使うと、enumよりも安全


  • 適切にAnnotationをつけると、ドキュメントの代わりにもなる。オススメ。


16.Fringe81 『』 Android


  • スライド映らないけどがんばる(`・ω・´)→最後の最後で写った

  • 代理で来たら発表者枠でした

  • 発表します

  • アドテクの会社なので、cookieが超大事です

  • SFSafariViewControllerを使ってアプリ間でcookie共有できる→面白いことができそう

  • Safariとの共有は試したけどできなかった?

  • 続きは懇親会で


感想


  • つくったよ系発表が多く熱かった

  • 本来のTips共有もあってとても良かったです。国際化tipsとかAnnotationsとか。

  • 🍣

  • スライドが映らなくても折れない心が重要