LoginSignup
2
2

More than 5 years have passed since last update.

DroidKaigi 2017 参加レポート

Last updated at Posted at 2017-03-15

DroidKaigi 2017に参加してきたので、受講してきた内容と感想を雑にまとめます。

1日目

  • 10:40〜Room4 逆引き マテリアルデザイン
    http://yaraki.github.io/slides/droidkaigi2017/#1

    ガイドラインをちゃんと読む。 最新はwhats-newに書いてあるので、定期的に確認する。
    タッチフィードバックは必ず実装すべき!
  1. Patterns - Launch screens
    0.1秒でも早くユーザが興味を持つコンテンツを見せるのが大原則!
    時間がかかるならブランディングを見せる。
    ブランディングはアプリの背景として設定して、アプリが起動したらすぐ通常の背景に戻す。
    ダラダラ表示しない。

  2. カスタマイズ
    カスタマイズしたいときなにを設定すれば良いか、リファレンスだけじゃなく
    Support Libraryのソースコードをおってみると、簡単にできたり理解が深まる。
    CoordinatorLayoutめっちゃ便利。
    View同士を連動させてアニメーションさせることが簡単にできる。

  3. Transition API
    API Level 19から使える(API Level 14までバックポートされている)
    画面遷移時だけじゃなくViewの状態・表示切り替えアニメーションでも使える。

  4. アニメーションをつける意義
    どういうアクションをしたからこういう結果になっているのか、ということをユーザに直感的に理解させるため。
    逆に、ユーザが混乱するようなアニメーションは過剰である。


  1. プログレスをダラダラ表示してユーザの操作を阻害するようなことは、極力しないようにする。
  2. ネットワークが繋がっていないときでも、追加・編集などの操作はさせておいて、オンラインになってからサーバと同期する。Realm Mobile Platformを使えば上記のことが簡単にできます。

2日目

  1. 紙媒体しかない情報をアプリ化すると伸びやすい
  2. ネーミング大事(検索にひっかかりやすくするため)。造語は避ける
  3. もうちょっとこうならいいのにと感じたときにすぐメモる(アイデア)
  4. SNSでシェアするとインストール数があがる
  5. アイコンは凝らなくても機能がよければインストール数は伸びる
  1. 音声認識開始が遅いときはonPartialResultで入力を監視してしばらく入力がなければstopしてやる

  2. デバイスがオフラインのときonErrorが呼ばれないことがあるので、timeoutを自分で設定する

  3. 解析する言語は自動判定できないので、必ず設定する

  4. ボイスコマンドは辞書登録しておく

  5. 雑音環境では短い音声は認識精度が下がるので、ある程度ながい単語をユーザにしゃべってもらう

  6. 通常時は連続音声認識のためになにかしらレシーバを張っとく

  7. 連続音声認識がサーバと通信する(オンラインでないといけない)理由はなにか?

  8. マイクは1つのアプリしか使えない

  9. 連続音声認識が動いてるときはSpeechRecognizerは使えないのでいったんstopする

  10. OK Googleは優先度が低いので、他が動いているときは勝手にstopしてくれる

メリット
デザイン作成段階で、エンジニアができるできないを判断して相談しながら進めていくことで
デザイナーの負荷も減らしつつ、工数を抑えられる
デザイン待ちの時間を削減できる(決まって変わらないであろうところから実装が勧められる)
エンジニア視点だけではなく、ユーザ視点で捉えられるようになり視野が広がる

デメリット
理論的には正しいがUI的には微妙なものができる可能性がある

エンジニアがデザインをやりすぎるとデザイナーがやることがなくなる
デザイン部分はデザイナーに任せる
最終的な決定権はデザイナーにもってもらうとうまく回りそう
アプリのデザインができる、エンジニアに意見の言えるデザイナーを育てる

マテリアルデザインはあくまでフレームで、基礎をしっかり理解した上でどういったカスタマイズを
するか考えて実行していくことがエンジニアの役割

やっていくべきこと
マテリアルデザインのガイドラインを読み込む
デザイナーと協力して工数を削減していく
知識と実装をつなげる
用意されているViewコンポーネントを知って流用する(独自に作らない)
アニメーションの実装を学ぶ
 アニメーションの種類、できること、違い、使い方を理解する

UIだけでなくUXを改善する(動作速度を改善することが効果的)
パフォーマンスモデルを決める(動作速度の要件)
遷移開始はアクションから100ms以下
アニメーションは1フレーム16ms以下
ユーザを待たせる処理は1000ms以下
1000ms以上のタスクは完全バックグラウンド(コールバックを待たず投げっぱなしにするくらいの勢い)

デザイン部分じゃなく、遷移速度、表示速度など、エンジニアしかできないことを改善することを目指す

  • 17:10〜Room2 ドキッ★脆弱性 onCreate() から onDestroy() まで https://speakerdeck.com/ken5scal/dokitucui-ruo-xing-oncreate-kara-ondestroy-made 知識・調査不足による不用意な実装、人為的なうっかりミスが多い。 レビューでがんばって見つけるのも大事だが、コードチェックツールなどを活用してある程度自動化しないと辛い
2
2
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
2
2