【DroidKaigi 2017】Androidアプリ開発の体力づくり
発表者
- Shinobu Okano
- @operandoOS
- Mercari, Inc
- Souzoh, Inc
アプリを作る工程
- 作りたいアプリを考えるぞ!
- 環境構築するぞ!
- 実装するぞ!
- 公開するぞ!
作りたいアプリを考えるぞ
- どんなものを作ればいいんだろう
- 僕はいまいち思い浮かばなかった
- 作りたいアプリがなかった
- アプリのデザインに悩んで実装が進まない
- 個人でアプリを公開するのに何年かかったか
- 4年かかった
- ジレンマ
- ある程度できるようになると実装よりもその前段階が大変
- 幸せな悩みだなーと実感する (技術力を持て余してる)
- 実装はできるんだけどねーっていう何もできない人になる
- ジレンマを解消するぞ!
- 小さく始める
- 面白そうなものを作る
- 雑なものでも公開すれば学びがある
- 4年かけて公開した自慢のアプリ
- Neco Atsume Launcher
- Developer登録しておこう!
環境構築するぞ!
- Android Studioのハマりどころ
- 俺が考える最強のキーボードショートカット
- 俺がお勧めする最強のPlugin
- 始める時はどうでもいい!
- はじめrは気泡操作だけ覚えることに専念したほうがいい
- にごろIntelliJで使っている人は設定をimportすると楽
- ただ、
- 継続的に使うものあのでどこかで色々やって見ることは必要
- 不便だと思ったときに調べて見る
- 色々な昨日入ってるのでなれる
- Android Studio User Guide
- 騙されたと思って読んで見ると良い
- Android Studio最速入門 効率的にコーディングするための使い方
- 3年前くらいに書かれたものだけど使える
実装するぞ!
- コードを書く
- デザイン
- Androidの開発言語はなんですか?
- どうやって実装したらいいんだろう?
- サンプルで学んでいこう
- Android Studio New Project Wizard
- 一つ一つ作って動かすのめんどい
- Android Studio Sample Projects
- 全部まとめたプロジェクト作った!
- サクッと試せる
- 良かったら使ってみてね
- サンプルから学ぶ
- 入門書で学ぶ
- ブログにAndroid学ぶ上での書籍についてざっくり書いてある
- FIXME: url
- http://hack-it-iron.hatenablog.com/entry/2016/07/16/182141
- アプリのデザインどうしよう
- 個人アプリでデザインに困る
- Material Designは銀の弾丸ではない
- Material Designにしないといけないと思わせてしまう
- 作るアプリにあったデザインを重視するべき
- とはいえ、MaterialDesignならさっくり作れる
- Material Design Introduction
- はじからはじまで読んでほしい
- 納得できなかったところが納得できる
- 理解すれば継続的に役立つMaterial Design以外の観点でも役立つ!
- マージン揃えよう
- フィードバックアニメーションちゃんとつけよう
- Material Design Introduction
- さらに進化したマテリアルデザイン
- Material Design Resouces
- Material Icons
- 自分でアイコン作りたくないとき便利
- https://material.io/icons/
- Material Design Resources
- Material Icons
Material Designの実装
- materialdoc
- マテリアルデザインのコンポーネントを使うにあたってこうやって使うといいよーみたいなこと書いてある
- Topeka for Android
- Material Components for Android
他のアプリのデザインを参考にする
- Android Niceties
- とあるアプリのデザインを真似して作る
- いろんなアプリに触れる機会にもなるので良い!
公開するぞ!
- でキタッラいいから公開する
- Google Playの説明も適当でいい
- 後で変えられるし
公開で困ったぞー
- 困ったらGoole Play Developer Help Center見て!
- 単純なヘルプ以外にもコンソール上でできることとか色々載ってて良い
ここまでのまとめ
- 迷って作れないものはもったい兄ので雑でやっていこう
- 1から作るドキュメントは整っている
もっといいアプリ作りたいな
- 必要になるもの
- 技術力
- アプリのアイディアを考える力
いろんなプリを作ってきた (直近2年)
- メルカリ (運用)
- アッテ (新規)
- Taxnote (新規)
3つのアプリを作る上で必要になった技術
- Android API
- Google Play Services
- 新しいOSバージョンの対応
Android API
- 一番重要な知識
- 知ってるか知らないあkの世界
- よく使われるAPIはそこそこ決まってる
- Preference, Activity, WebView, Permission….
AndroidAPIを理解する
- 公式ドキュメント・Referenceを読む
- API Reference
- だいたい書いてある
- たまに書いてないのもあるけど、最悪コードを読めばいい
- API Guides
- Activityとはなんぞやとか、深い話が書いてある
- 読み物として面白い
- util package
- 知っておくと便利
- パフォーマンスを上げるためのクラスとか色々ある
- いろんなコードを読んでAPIの使い方を理解する
- Androidソースコード検索サービス
- sites.google.com/site/devcollaboration/codesearch
学んだことをoutputする
時代の流れとAPIを考える
非推奨APIとの戦い
- Android Studioで非推奨と出てるからちゃんと見る
- ドキュメントに「代わりにこれ使ってな!」と書いてある
- Lintかけて非推奨API使ってないかチェックする
もっとAPIあるよ!的なあれ
- アプリを使うユーザーが期待する動きは何か
- OS自体はニーズにあったAPIを提供している..はず…
- 省電力ならDoze
- モバイルでも画面がでかくなった、ながら作業したい、アプリをまたいで何かしたい = Multi-Window
- ニーズに対する技術のキャッチアップは大事
- 新しく提供されるAPIは今のニーズ、将来のニーズを見越しているもの
Google Play Services
- アプリを作る上で欠かせないものが詰まった宝箱
攻略の鍵
- Goople Play Serivesを使ってどんなことができるのか把握しておく
- 新しい機能が追加されるものを追う
- Goole Play Servicess Release Notes
- これを追っていればだいたいわかる
- Goole Developers Youtube
- 機能の説明がさっくり書いてある
- まとめをQiitaに書いてあるのでオススメ!
- d2feb53cd55e94c4e9a6
Public Beta Program
- パブリックベータ使うことができる!
- 新しい機能を早く試せる
新しいOSバージョンの対応
新しいOSバージョンに向けた俺たちの戦い
- エンジニア主導で動いている
- 対応するタイミングも決めている
新しいOSば^ジョンの対応判断基準
- 全体像が見えてきたら対応時期を見極める
- 早すぎてもダメ遅すぎてもダメ
- このアップデートはアプリとってネガティブ or ポジティブ?
- シェア率を見ながら考える
- Dashboars - Platform Versions
対応に向けてまずやること
- Previewから遊び倒す
- compileSdkVersion, targetSdkVersionをあげてbuildして見る
- build通るか?
- 非推奨APIのチェック
- 起動で落ちないか?
- ドキュメントを何度も読み返す
- New Features Document
- Android Beta Programに参加すること
- 遊んだらメモしたりアウトプットする
- とにかく気になった記事を溜め込む
- Qiita
- Blog
- Medium
- …
- RSSフィードの公開
- https://goo.gl/Zqg5RD
- 公開してるので見てね!
ここまでのまとめ
Android開発の今とこれから
今
- Android FramewokやLibraryが整ってきた
- Libraryなどを駆使してどうアプリを料理するか
すごくいいまとめがある
- OSSの動向を捉えた実装方針
- …
どうやって新しい。良いライブラリを見つけるか
New Android Layout
- ConstraintLayout + FlexboxLayout
Conference
- 世界中でConferenceが行われている
- AndroidConferences
- Conferenceの資料を見る
- droidconは見て見るといい
- 世界的にはどんな話がされているのか
- 何が人気なのか
これから
Instant Apps
- インストール不要で実行できるアプリ
- 適当に言うと
- 軽い
- 早い
- ぱない
- Viki - Instant Appsの例
- インストールしてないのに別のアプリ開ける!
- すごい
- 心がけること
- アプリを小さくしていらないものは捨てよう
- 簡単にうとmoduleにしろということ
- App Linksに対応する
- 6.0から入ってる
- ユーザ認証とかにはSmart Lock for Passwordsを使う
- 認証の仕組みが大変なので、これで認証状を管理させてねって感じ
- Instant Appsでできないことを知る
- アプリを小さくしていらないものは捨てよう
- 俺的視点
- Google Play Serviesの機能をされに熟知してうまく使う必要がある
- アプリを小さくするためにはGoogleの提供するものに乗っかる必要がある
- Google Play以外からアプリの導線をどれだけ広げられるか
- Google Play Serviesの機能をされに熟知してうまく使う必要がある