- 【第20回】potatotips(iOS/Android開発Tips共有会)に「ブログまとめ枠」で参加しました
- まとめはQiitaでもOKとのことなので投稿します
- 発表を聞きながらメモったことをふんわりまとめてあります
- 発表者の発言そのものではない点、ご注意ください
- お気づきの点がありましたらお気軽にコメントおねがいします!
発表一覧
会場
- 会場は 株式会社VOYAGE GROUP さんです。
- 海賊船ぽいオフィス!(撮影許可頂いてます)
お邪魔してます!会場はほぼ一本道の一番奥です! #potatotips pic.twitter.com/DixlOm1zZz
— ohkawa (@ohkawa_m) 2015, 8月 11
受付近くのスペースからgolangについて熱く語る声が聞こえてくるポテチ会場 #potatotips pic.twitter.com/sWr0f3Ez1v
— ohkawa (@ohkawa_m) 2015, 8月 11
- 開始前からsushi!(ごちそうさまでした!)
sushi!!!!! #potatotips pic.twitter.com/JsCUut40d6
— ohkawa (@ohkawa_m) 2015, 8月 11
ここから本題
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のサンプルコードが参考になる
発表に使ったTweet表示はこのアプリです https://t.co/gF7jWYWpUx #potatotips
— y.imajo (@yimajo) 2015, 8月 11
* 結構バギーです。再起動が必要になったり * 設定画面のラインスタイル>「メニューバーの上」を選択すると、Keynote発表中でも流れます * 🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣🍣#potatotipsTweetRain表示するには画面のミラーリング(Cmd+F1)して発表のディスプレイと同じにする必要があります #potatotips
— y.imajo (@yimajo) 2015, 8月 11
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とか。
- 🍣
- スライドが映らなくても折れない心が重要