[iOS][Android]【第21回】potatotips(iOS/Android開発Tips共有会) に参加しました!

potatotipsに参加してきました

こんばんは。朝のジャスミン茶は欠かせない田宮です。

昨日(2015/09/16) 行われた、potatotipsのイベントレポートをお届けします。potatotips は、iOS/Androidアプリ開発者向けの勉強会です。

定期的に開かれている人気の勉強会です。参加者全員が発表するのが元々のコンセプトで、最近では、オーディエンス枠などもあり、より気軽に参加できるようになっているようです。

※追記(2015-09-18,19)最新のpotatotips 21 · potatotips/potatotips Wiki · GitHub内容にあわせて内容を更新しました。

雰囲気

今回の会場は、リクルートマーケティングパートナーズ様のオフィス。とても綺麗な会場でした!

とても多くの方が来場されており、iOS / Android 問わず、スマートフォンに関わる技術者の方が集まる場になっていました。

pic01

概要

今回は、総勢16名の方が発表されました!

発表者 内容 OS
_mpon Swift compile time is so slow iOS
kgmyshin framework code reading Android
shoby Apple Watch Tips iOS
amyu_san To learn Interpolator Android
TachibanaKaoru 3D Touch on iPhone iOS
tarotaro4 Recently Google Play Developer Console Android
cocominap UIKit Sound iOS
petitviolet ReactNative for Android Android
naoyashiga ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる iOS
konifar Nearby API Android
grgr56 絵の描けないエンジニア/コードの書けないデザイナー iOS
izumin5210 Promisified BLE Client Android
tomzoh TestFlightみたいなのを自作する iOS
teshi04 Create Layouts with the Wearable UI Library Android
daisuke0131 バグのことは嫌いになってもXcodeのことは嫌いにならないでください。 iOS
KeithYokoma Popup view on Mortar Android

※ 上記は、potatotips 21 · potatotips/potatotips Wiki · GitHubから引用させて頂いております。

発表スタート

以下、箇条書きとなりますが、発表内容についてまとめさせて頂きました。

資料を確認させいただきましたら、随時記事に追加させていただこうと思っています。

また、当方iOS エンジニアにて、Android については詳しくないのですが、間違い等ありましたら、ご連絡頂ければ幸いです。

pic02

[iOS] Swift compile time is so slow

発表:_mpon さん

  • Swift のコンパイルが遅い問題
  • コンパイルに6分55秒かかっていたプロジェクト (Swift 1.2)

  • Swift ファイルの数を300から1にしてみた

    • cat *.swift > God.swift
    • 48秒に短縮!
    • しかし、Xcodeのエディタが脂肪(3万行はムリだった)
  • Exensionを 240 → 13に
    • 1分55秒に短縮!
  • .swiftファイルとExtension数の削減同時に行うと39秒に!

[Android] framework code reading

発表:kgmyshin さん

frameworkの中身がわかると面白い、というお話でした。具体的なツールの紹介もありました。また、インストール用にいらないエミュレータを消すと大きく空き容量が増えることを

  • 起動シーケンス
  • パスワードロック
  • パスワード
    • ヒントのXMLを作成していたりする
  • Telephony
    • イベント駆動。ハンドラとスレッドでガリガリ書いている。
  • Permission

ツール

[iOS] Apple Watch Tips

発表:shoby さん

Apple Watch における、体感速度向上についてお話されました。 下記以外にもTIPSをお話されていました。

  • 最初に見える部分だけ高速描画
    • 通信なしで画面遷移
    • 画面の上の方にテキスト情報 → ユーザーが文字を読んでる間に画像を読み込む
  • 画像のロード Queue には1つずつ詰める
    • 全体としては遅くなるが、1枚目が早く終る
  • 最適なサイズの画像を使う
    • Apple Watch 専用の小さいもの
  • 画像をキャッシュ
    • NSURLRequestReturnCacheDataElseLoad も要検討

[Android] To Learn Interpolator

発表:amyu_san さん

Androidでアニメーションの制御に使われる「Interpolator」についての発表でした。 最初に、自然なアニメーションを作るために使われる「CustomInterpolator」

  • CustomInterpolator
    • アニメーション曲線について、独自に定義して、様々なアニメーションを実現
  • Mac の Grapher を使う
    • 方程式を読み取ってグラフを描写する Mac 標準アプリ
    • グラフを数式で作り、コードに変換する。
    • x(時間軸)の区間で区切り、そこでどの式を使うかを if文などで分けて実装

[iOS] 3D Touch on iPhone

発表:TachibanaKaoru さん

iPhone 6s /6s Plus の新機能である、3D Touch についてのお話でした。

  • Pressure Sensitivity
  • Quick Actions
    • ホーム画面を押すと表示されるコンテキストメニュー
    • Info.plist に設定
    • タイトル、サブタイトル、アイコンなど
  • Peek and Pop
    • 軽く押すと少しだけ見える
    • Mac の Quick Look 的なもの

[Android] Recently Google Play Developer Console

発表:tarotaro4 さん

Android アプリの公開や様々な設定・フィードバック閲覧などができる Google Developer Console の様々な機能について、最新の情報を発表されました。 下記以外の項目についても、詳しく説明されていました。

  • Android Rate
    • レートを上げるための指標になる
  • Review&Comment
    • レビューに返信が書けるようになった
    • 読んでいれば、解決策を書ける
    • しかしユーザに通知は行かない模様。ユーザ側から見に来てくれないと返信は伝わらない仕組み。
    • ユーザが星の数(レート)を変えてくれた事がわかるようになっている
  • Crash & ANR
    • ANR = Android Not Responding キー入力に対して5秒間反応がないなどの時、ANRとなる
    • クラッシュ時やANRの際、情報が送られてきて統計情報として表示される
    • 実際はデータがうまくとれていない模様で、ほぼ役に立たない
  • Optimization Tips
    • アプリを改善するためのTIPSが表示される画面
    • タブレット対応してください、など表示される

[iOS] UIKit Sound

発表:cocominap

私が発表しました。UIKit コンポーネントにおける様々なアクションに、効果音をつけたらどうなるか、をサンプルデモを中心にお伝えしました。

[Android] ReactNative for Android

発表:petitviolet さん

React Native for Android のセットアップ方法から、ご自身で作成された ReactNative のサンプルの紹介と解説をお話されました。

具体的なコードの解説がありました。私は ReactNative や React.js を触ったことがないのですが、読みやすい&分かりやすいなと感じました。

[iOS] ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる

発表:naoyashiga さん

ネットで話題になった記事ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる - not good but greatをベースに、発表されました。

  • Pull Request を送ってみた
    • Swift の場合:varをletに変える、使ってない変数を削除する
    • 感謝された
  • 自分が詳しい言語などのリポジトリを探す
  • Trending repositoriesなどを使って、リポジトリを探す。作者がフィードバックを待っている。
  • 英語が苦手でも、"Please Review" だけでOK!
  • プロフィール画像にビビらない(かっこよくても笑)
  • 「しょぼくても」大丈夫
  • 敷居が下がる、感謝される、スキルアップする

[Android] Nearby Messages 触ってみた

発表:konifar さん

Android での近距離通信向けAPIについてお話されました。

  • Nearby = 近距離通信向けAPI

  • Nearby Messages

    • iOS でも使える模様
    • Bluetooth, Wi-Fi, Ultrasound(超音波)を使った通信
    • Publish ←→ Subscribe メッセージングモデル
  • Nearby Messages の実装方法の解説
    • GoogleApiClient.Builder().build
    • subscribe()
    • publish
    • connect() / disconnect()
  • ちゃんとつくろうとすると色々な制御(バッテリーなど)必要だけど、簡単に試せる

  • ネットワークが無いとき、超音波通信ができず悲しかった

[iOS] 絵の描けないエンジニア/コードの書けないデザイナー

発表:grgr56 さん

賃貸アプリHOME'S へやくる!にプログラマとして関わる中での知見についてお話しされました。

  • コードを書く前に、プロトタイプを作ることの重要性
  • プログラマとデザイナーの間には「壁」がある
    • エンジニアにはカッコイイ絵の壁
    • デザイナーにはプログラムの壁
  • プロトタイプツールが、デザイナーとプログラマの間の壁を壊すことが出来る

Promisified BLE Client

発表:izumin5210 さん

AndroidのBLE機能についての解説と、ご自身で作成されたBluetoothGattのラッパーライブラリーであるBletiaについて解説されました。

[iOS] TestFlightみたいなのを自作する

発表:tomzoh さん

会社内でのバイナリ配布方法の変遷についてお話されました。

  • 2009年〜
    • 昔はメールでipa配布
    • 煩雑
  • 2010年〜
    • TestFlight
    • 詳しくない人向けに導入手順書が必要
  • 2011年〜
    • In-House 配布
    • HTML から plist ファイルへのリンクを貼り、そこから plist 取得
    • バイナリ配布サーバから ipaファイル取得
    • In-House 配布システムを自社開発(バージョニングシステム対応)

[Android] Create Layouts with the Wearable UI Library

発表:teshi04 さん

Android Wear のUIコンポーネントについてお話されました。短い時間でとにかくたくさんのコンポーネントについてお話されていたのが印象的でした。メモできた範囲でご紹介します。

  • WearbleListView
  • DelayedConfirmationView
  • DismissOverlayView
    • ロングタップで Activity 終了するためのコンポーネント
  • CircledImageView
    • ボタンとして使われるImageView
  • CardFrame
  • CardFragment
    • CardFrameが設定されている
  • GridViewPager
  • DotsPageIndicator
  • ProgressSpinner
  • CrossfadeDrawable
  • ConfirmationActivity
    • アクション完了時の結果表示
  • ActionLabel
  • CircularButton
  • ActionPage

  • 丸型のデバイス対応(余白、レイアウト)

    • BoxInsetLayout
    • WatchViewStub
    • WearbleFrameLayout

[iOS] バグのことは嫌いになってもXcodeのことは嫌いにならないでください。

発表:daisuke0131 さん

Xcode におけるデバッグについての便利な機能についてお話されました。

  • ボタンを押して画面遷移
    • しかし エラーは 「App Delegate が原因」とだけ言っている
  • Add Exception Breakpointすることで、どこで止まったかがわかる
    • エラーの出力方法も替えられて良い
  • Move Breakpoint To > Userで、複数プロジェクトでブレイクポイントを使いまわせる
  • AutoLayout 制約でのエラー
    • Add Symbolic Breakpoint を仕込むと、AutoLayout のエラー詳細を見ることが出来る

※上記の Add Symbolic Breakpoint についてですが、以下のサイトの解説のないように近かったと思います。

Popup view on Mortar

発表:KeithYokoma さん

Android のライフサイクルやビューに関わる Mortarについてお話されました。私には難しい話で、理解できていないのですが、以下の資料に詳しい内容が載っていますので、ぜひ御覧ください。

まとめ

今回は、初参加させていただきましたが、スマートフォン業界の TIPS が多く発表されました。気軽に参加できますし、iOS / Android の技術者が交流できる貴重な場だと思います。 既にこちらで次回以降のイベントページが作成されています。ぜひ参加されてはいかがでしょうか?