37
36

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.

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

Last updated at Posted at 2015-08-11
  • 【第20回】potatotips(iOS/Android開発Tips共有会)に「ブログまとめ枠」で参加しました
  • まとめはQiitaでもOKとのことなので投稿します
  • 発表を聞きながらメモったことをふんわりまとめてあります
  • 発表者の発言そのものではない点、ご注意ください
  • お気づきの点がありましたらお気軽にコメントおねがいします!

発表一覧

会場

  • 開始前からsushi!(ごちそうさまでした!)

ここから本題

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とか。
  • 🍣
  • スライドが映らなくても折れない心が重要
37
36
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
37
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?