DroidKaigi 2017 プログラム応募状況
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

 
View only
 
 
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
bettセッション名 / Talk title概要 / Abstractトピック / Topicトピック(その他) / Topic(other)発表時間 / Talk slotセッション用氏名 / Name
2
2016/10/01 11:38:24This is a test talk titleMax 1,500 characters. A talk is more likely to be accepted if it is Android specific, has expertise and innovative content.その他 (Other)Form test30分 / 30 minutesDroidKaigi staff
3
2016/10/01 12:22:29全てSになる〜RxJavaとLWSを持ち込む楽しさ〜■ 対象者
初級〜中級者向け
■ 内容
Android 7.0 SDKからStreamやOptionalなど、Java 8で導入されたAPIが一部使えるようになりました。ただし、これは応募時点(2016/10/01)ではJackコンパイラを使う場合に限られていて、実践導入はまだ先になりそうです。そこで、以前から話題となっているRxJavaや、Stream/OptionalのバックポートライブラリであるLightweight Stream APIを活用して、来たるJack時代のAndroidアプリ開発について先取りできるお話をしたいと思います。

プリミティブなAndroid SDKのAPIを使う場合と比較してどのようなメリットがあるのか、デメリットは何があるのかといった話や、RxJava/Lightweight Stream APIを実践導入して得られた知見を皆様に共有できればと思います。

特にLightweight Stream APIに関しては単なるバックポートではなく、独自の機能も持っていて、Android開発において特にFragmentを使うときにちょっと便利なユーティリティとして機能します。Android開発においてはメリットがあるライブラリだと思いますので、この知見については一番共有できればと思っています。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesryugoo
4
2016/10/01 17:40:51カンファレンス向けガイドアプリの作り方対象者: イベントのスタッフや運営に興味のある方

9/20-24に行われた PyCon JP 2016 では、初めてiOS向け/Android向けの公式ガイドアプリを作りました。
このうち、Android版公式ガイドアプリの開発経験の中で得た、カンファレンス向けアプリの作り方と注意点をお話しします。

* Android版PyCon JP 2016公式ガイドアプリ
* Playストア: http://goo.gl/E9LMhj

大まかなセッションの流れとしては、下記のような構成を考えています。

* 導入
* アプリを作ることになったきっかけ
* アプリの簡単な紹介
* 使ったライブラリやサービス、開発スタイル
* 開発過程
* 機能選定
* デザイン調整
* API(Webサイト)側との調整
* Webビューを使う割り切り
* スタッフ内でのベータテスト
* リリース
* iOSと足並みを合わせたリリース日の調整
* そこから怒涛のアップデートまつり(笑)
* リリース日や当日の告知方法について
* リリース〜当日の利用状況
* GoogleAnalyticsの結果公開
* 参加者からの直接のフィードバックいただいた話
* 当日を終えて
* アンケート結果公開
* アンケート結果、フィードバックに対して回答
* まとめ
* カンファレンス向けアプリを作る上での注意点
* 必須な機能、入れたほうがいい機能、なくてもいい機能
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesrhoboro
5
2016/10/02 23:34:52Various Android Coding StyleAndroid開発が、KotlinやDatabindingなど開発手法が多様化する中で自分のチームにあったコーディング規約を素早く選択できることは、チームの開発効率をあげます。このセッションでは、それぞれの開発手法ごとに分けた、コーディング規約の紹介と、それぞれの開発手法を変更する際のコーディング規約の選択についてお話します。
また、コーディング規約を定めるだけでなく、どのようにしたら規約をチームに浸透させることができるのか、各種ツールの導入や設定なども含めてお話をしたいと思っています。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutes保坂 駿
6
2016/10/03 2:15:02Google Daydream: Unity, Web, Java or C++?After we could lay our hands onto the first Google Virtual Reality Daydream™ certified devices at the end of 2016, let us take a look on how to program for Daydream™: When should we use Unity, Java, C++ or even the Web for our projects?

I'll quickly introduce the Daydream™ devices, and will give an introduction to the hardware and the expected behaviour of the new Virtual Reality head and hand set.

This talk will emphasise giving a hands-on comparison of the current available technologies to program Daydream apps: At first, we'll go through a simple "hello world" style demo app for unity by following me through the steps needed, from installing Unity to simulating the result in the IDE.

After discussing the unity advantages and shortcomings, I'll take a look into how to program a similar app in native Android. Highlighting SDK differences between Unity native, Unity GVR Plugin, Android Java SDK and Android Native C++ SDK.

In closing, I'll quickly highlight on how to write a photosphere app in native Android and Web.

After my talk, the audience will be equipped with a toolset on deciding which technology is to be used for which kind of Virtual Reality App on Android.
その他 (Other)
A mixture between Tooling/Hardware/Platform
50分 / 50 minutesMarioBodemann
7
2016/10/03 11:17:56ARアプリ作成の最新事情2016はVR元年と言われていますが、Pokemon Goを筆頭にARの利用も近年盛んになってきています

本セッションでは
ARとは何か
Web, アプリなど様々なARアプリ実行環境についての解説
ARアプリを実装する際にどのようなIDE、SDKが適切か
などを解説致します

さらにGoogleが提供するAR端末、Project TangoがなぜARにおいて革新的なのかを説明させていただきます

ARについて興味がある方向けです
その他 (Other)AR30分 / 30 minutesTatsuya Shimada
8
2016/10/06 4:47:00Toothpick: a fresh approach to Dependency Injection on AndroidYou find RoboGuice simple but slow ? And you think Dagger 1 & 2 are fast but complex and bloated ? Toothpick is the best of both worlds !

Toothpick is a scope tree based, runtime but reflection free implementation of JSR 330. It is pure Java, with a special focus on Android.

Toothpick is fast (even faster than Dagger 2 in some cases!) and is simpler to use, with less boilerplate code. Its syntax is very close to Guice. It supports named dependencies, lazy dependencies, providers, and has built-in support for custom scopes. As compared to Dagger 2, Toothpick provides more powerful testing support, allowing you to leverage DI to mock dependencies using either mockito or easymock.

Its explicit scope tree helps developers to build more robust apps. It provides more fine grained control to easily implement complex user flows that span multiple activities or state preservation across configuration changes (e.g. rotations), a common issue when implementing the MVP pattern.

During this talk for experts, we will introduce Toothpick, its main features and how it compares to other DI libs. We will explain how Toothpick scopes and scope annotations can solve advanced use cases when developing Android apps.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesStephane Nicolas & Daniel Molinero Reguera
9
2016/10/06 4:50:47Better Android Intents with Dart & HensonIntents are an essential component of the Android ecosystem. They are used to express an action to be performed and can be classified into implicit and explicit intents. In an abstract way, all intents together define a navigation layer inside an application.

During this talk we will explain why the Android way to create explicit intents is error-prone and also show some problematic ways to solve it. Then, we will introduce the solution we developed at Groupon: Henson, a new library in the Dart project, that takes intent creation to new levels: It generates a fluent API to build intents. This API constitutes a navigation layer that makes it easy, convenient, fast and robust to navigate among your activities and services. Therefore, it will be impossible to miss a required extra and simple to add optional arguments as needed.

The talk will be based on the following article featured by Android Weekly:
https://medium.com/groupon-eng/better-android-intents-with-dart-henson-1ca91793944b#.4h12yxgtl

Furthermore, all the library features and possibilities will be explained in depth.

This intermediate level talk about Dart & Henson will be carried out using slides, code and demos.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesDaniel Molinero Reguera & Stephane Nicolas
10
2016/10/19 11:42:45Deep dive into Android Auto■対象
ある程度 Android アプリ開発・リリースの経験のある中級者以上
■内容
Lollipop の登場とともに発表された Android Auto は、少しずつ市販車のカーナビシステムに組み込まれてきており、アプリが自動車内にいるユーザとのエンゲージメントを得るために必須のフレームワークとなることでしょう。そのため、これから Android Auto と連携する機能を構築するには、どのような API があるかだけでなく、どのような仕組みの上に成り立っているかを知っておくことも重要です。
本セッションでは、Android Auto そのものの概要やそのフレームワークがもつ API の紹介から、フレームワークがどのように構築されているか、Android Auto を支えている技術を深掘りして見ていきます。その上で、フレームワークを使うときの注意点やノウハウ、また注意点・ノウハウの Android Auto 以外での一般的な応用を考察します。
■構成
* Android Auto の概要
* Android Auto が持つフレームワークの紹介
* Android Auto for Messaging
* Android Auto for Audio
* Android Auto を支える技術
* Notification
* プロセス間通信
* Service
* Android Auto フレームワークを使う上での注意点
* プロセス間通信におけるメモリ管理
* Service の死活監視
■本セッションに関連する話題
* Android Auto
* Notification
* Service
* プロセス間通信
* AIDL
* サポートライブラリ
ハードウェア (Hardware)50分 / 50 minutesKeithYokoma
11
2016/10/06 12:27:39Deep dive into video and ExoPlayerIn this talk I'm going to talk about some video technologies and how to deal with them by ExoPlayer, the new standard of Android media player. Unfortunately few developers have a chance to deal with video deeply on their product. But actually video is kind of the most deep side of mobile app development, such as:

- The difference between streaming formats(DASH, HLS) and container formats(MP4, WebM)
- What is DRM, how it works on Android
- How to use ExoPlayer and how to customise it
- How to support offline playing

I'm going to share how I've addressed with them with our product, Quipper Video. Conclusively you'll learn how to manage video and how to use ExoPlayer effectively.
その他 (Other)Media30分 / 30 minuteshotchemi
12
2016/10/06 13:01:21Espresso, beyond the basicsMore than the typical onView example Espresso offers a complete framework to interact with your UI. Once you start developing your tests you find common issues, in this talk learn tips and tricks on how to deal with the framework and avoid problems like synchronization, permissions, environment test scenarios and much more.その他 (Other)Android Testing50分 / 50 minutesInaki
13
2016/10/06 13:06:35CIの導入における選択肢と、最高の環境対象者:
CIの導入を考えている方、CIを導入したは良いがポテンシャルを発揮できていないと思っている方
CIとは何なのか、この世にCI as a Serviceと呼ばれるサービスが多数存在すること、テストやビルドが自分で出来る程度の前提知識が必要です

内容:
これからCIを導入するにあたって、各CI as a Service(CIaaS)などの今考えられる選択肢とその選び方
及び、考えうる最高のCI環境とその運用により得た知見について話します

最適なCIのあり方というのは開発規模や使っているツール等によって異なります
開発規模や利用ツールによってどのようなCIaaS或いはソフトウェアが選択肢にあがるのか?
各CIaaS或いはソフトウェアの強みや弱み、それらを踏まえどのように選択していくのが良いのか?
選んだ環境で、私達はソフトウェアの品質向上のために一体どのような事が可能なのか?
また、現状考えうる最高のCI環境の提起と、いかにしてその選択に至ったか?
その運用例と、運用によって得た知見について
メンテナンス (Quality and Sustainability)30分 / 30 minuteskomatatsu
14
2016/10/06 16:17:18Android Wear EssentialsLearning about Android Wear can make you a better Android developer, even if you will never specifically develop for wearables, focusing instead solely on phones and tablets.
This is what I realized after developing my latest watch face.
During this talk, I will explain the nuts and bolts of developing watch faces and apps for Android wear: from the platform constraints to describing step-by-step how to build an "OMG SO PRETTY!!1!" watch face without embedding any images at all. Only via manual draw operations.
Ever thought radians, shaders, radial gradients, canvas, paths, xfer modes, shadows, quadratic curves were difficult concepts?
These are pretty easy actually, and you'll be able to understand and use those in your Android applications too, after attending this talk
ハードウェア (Hardware)Android Wear50分 / 50 minutesGautier Mechling
15
2016/10/06 16:38:04Develop fast, think scaleIt is Android specific, about architecture that easily tested and scale. not a lot of developers use common software engineering pattern. I will present modular development progress.設計・開発手法 (Architecture and Development Process/Methodology)
Project architecture, MVP, DI, RX, Firebase (examles) and 3th party SDKs. How to impliment your project correct and without future regards when you will need to scale.
50分 / 50 minutesLeonid Olevsky
16
2016/10/07 5:12:25Android MVC architecture: Survival GuideIn the Android environment, there is great flexibility in the organization and architecture of an application. Therefore,it becomes important to use a simple and efficient architecture as MVP.
This talk will teach you what is MVP, and why is it important to use as a pattern to create a robust, scalable and easy to test Android application.
You will learn the theory behind the concept of MVP seeing the details of its structure to better understand its benefits.
The talk will be concluded by a practical example.
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesWilfried
17
2016/10/08 3:51:21TDD for real worldTDD in Android is not a common practice and is not standard, but following the SOLID principles we can create self contained components that can be testable with the use of JUnit, Mock frameworks, different gradle configurations and UI test suites like Espresso even for testing audio, video, or GPS.

MVP and Custom UI Components that are common practices for avoiding God activities can be a good result of doing a good use of TDD.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesCristian Gómez
18
2016/10/09 5:55:44Smoke and Mirrors in Android UISmoke and mirrors is an expression use to describe something that obscures the truth. The expression is commonly used to describe magicians.
Android developers have a lot in common with magicians, they make great and responsive UI, with limited resources. In order to make these experiences possible Android devs need to use a lot of tricks.
The talk will show examples of smoke and mirrors in: Android Framework, Google Photos, Google Calendar and Twitter.
After the talk, attendees will know how those great experiences are built.
UI・デザイン (UI and Design)50分 / 50 minutesIsrael Camacho @rallat
19
2016/10/09 6:25:31Polyglot Android DevelopmentHistorically Android development has been heavily tied to Java. After the Oracle v Google trial, and with the advent of even more viable alternatives, it'll be good to take a look at the state of the ecosystem outside the official tools.

The talk will outline the challenges any existing language faces when used in an Android environment. How and why some are able to directly access the SDK, while others require bridging over the NDK.

We'll do an overview of many languages, their strengths and weaknesses, and some of the extra tools they bring into the table and are not available in our day-to-day development.

Lastly, the talk will cover some multiple possibilities available to share code across platforms without leaving Java by using interpreters, code generators, or transpilers.
その他 (Other)Alternative Languages50分 / 50 minutesPaco Estevez
20
2016/10/09 6:37:06Architecture outside AndroidMany of our app share functionalities with a web version. But, even if we're solving the same problems, do we know how those web apps are developed?

You may have heard before about React, Redux, or the Elm architecture. They have revolutionised the way front-ends are developed, and they come with many guarantees and tools to accelerate development. We'll go over their foundations, pros and cons, amazing tools and libraries, and some of the wisdom we could take from them as a community.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesPaco Estevez
21
2016/10/09 6:48:00Pragmatic Functional AndroidFunctional programming is slowly becoming part of the wider development community. While you may use some tools or libraries that are based on functional principles, it is still uncharted territory for the wider Android community.

This talk will cover my personal experiences acquired after of years using functional and reactive programming with production apps: what are the real advantages of this new approach? which learning resources apply to Android development? what tools and libraries does it require? how functional does my code have to be to reap benefits? which patterns can you introduce on a legacy app? how do I get started with a reactive app? how do you help your team re-learn development? These and several other questions will be answered.
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesPaco Estevez
22
2016/10/10 0:29:12Wear 2.0 Complications API新しい種類のアプリを作りたい人向け
Android wear2.0では多くの機能が追加されましたが、Watch face Complicationsなどいくつかの追加機能によりAndroid wear2.0のユーザー体験はそれ以上に大きく変化します。
Watch face Complicationsを使用したWatch faceとData providerの作成方法や、通知を見る、だけに留まらないWearable端末を使った新しいユーザー体験について、考察していきます。
ハードウェア (Hardware)50分 / 50 minutesKenji Matsuoka
23
2016/10/10 17:58:11個人で11個のアプリを公開した結果■概要
僕が個人で開発してきた様々な種類(ツール、ゲーム、Android Wear)のAndroidアプリを公開することによって得られた知見を実際のインストール数などの数値なども交えてお話します。
実際のソースコードというよりは、どんなアプリがインストールされやすかったのか、レビューに対する反応はどうすればよいのか、個人で開発する上で必要なものなどのお話をする予定です。
今後の個人開発をする上での参考になれば幸いです。

■対象者
- 個人でのAndroidアプリ開発に興味がある人
- これから個人でAndroidアプリを開発しようと思っている人
- Androidアプリを開発したいけれど何を開発しようか悩んでいる人

■目次案
- 個人でAndroidアプリ開発をはじめたきっかけ
- 開発してきたアプリについて (インストール数やレビューなど)
- ライフスタイル系
- ツール系
- Android Wear系
- ゲーム系
- 個人で開発する上で困りそうなこと
- 開発・公開するためには何が必要?
- アプリは開発できるけどアイコンはどうするの?
- レビューきたらどうすればいいの?
- どんなアプリがインストールされやすいの?
- etc...
メンテナンス (Quality and Sustainability)30分 / 30 minutessyarihu
24
2016/10/15 0:03:20Refactoring Features in Large CodebasesSubject : Advanced
Using Android Style to refactor large code bases , to have visual consistency in your application.
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesRahul Dandamudi - Instagram
25
2016/10/15 11:54:12Android CI in practiceBased on the AndroidWeekly featured https://medium.com/@Malinskiy/android-ci-with-docker-a2f522086640 article, this talk will walk you through the development processes which will allow you and your team to succeed in a fast-paced Android development with confidence in the quality of the final product設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesAnton Malinskiy
26
2016/10/16 21:26:39Android ORMの選び方対象: 初心者~中級者向け

Android ORMは古くて新しいテーマです。以前はActiveAndroidやGreenDAO、そしてORMLiteくらいしか選択肢がありませんでしたが、近年は綺羅星のごとく新しいライブラリが次々に生まれています。また2016年3月に1.0となったRealmというSQLiteベースでないORMも人気を博しています。また発表者はOrmaというORMを開発しており、ORMには一家言ある開発者です。

さて、このORM百花繚乱というこの状況は多様性という意味では喜ばしいものですが、逆に選択肢が多すぎて選択するのが難しいという状況となっています。その結果、もっとも著名なORMである、しかし今やメンテナンスされていない古いライブラリであるActiveAndroidが使われ続けるということも少なくないようです。これは大変残念です。

このセッションでは、Realmを含むさまざまなORMを、インターフェイス・マイグレーション・パフォーマンスについて比較検討します。本セッションがORM選択の一助となれば幸いです。

## アウトライン(仮)

* なぜORMが必要か
* ORMは怖くない
* リソースのキャッシュ
* ローカルのデータストア
* 素のSQLiteDatabaseの基本
* ライブラリ一巡り
* Simple Helpers
* ORMLite
* SQLBrite
* SQLDelight
* O/R Mappers for SQLiteDatabase
* ActiveAndroid
* GreenDAO
* DBFlow
* Requery
* Orma
* Non-SQLite Databases
* Realm
* インターフェイスの詳細比較
* パフォーマンスの詳細比較
* マイグレーションの詳細比較
その他 (Other)
Library / Client-side Database
50分 / 50 minutesgfx
27
2016/10/17 4:52:35Data binding in the real worldData binding is not yet widely used by Android developers, and those who do use it seem to limit themselves to just replacing findViewById. However, the possibilities of data binding are endless, and with the right architecture, your code can be much cleaner and a lot easier to understand.
This talk begins with explaining the basics of data binding, and then quickly moves on to more advanced techniques/functions.
-------
I find that data binding on Android has not gotten enough coverage, and the articles and talks that do appear are very basic and not based on real life usage. I want to make Android developers realize that there is a lot more to data binding than what they have been able to read so far and explain how to architect an app with data binding in mind.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesKevin Pelgrims
28
2016/10/17 10:20:39Data Bindingで開発を気持ちよくしようAndroid 開発はボイラープレートを書くのが辛くないですか?findViewById、view.setText、view.setOnClickListener、nullチェック等。。。これらを少し楽にしてくれるライブラリはいくつかありますがそれでも完全に解決しません。Beta が取れ、実用段階に入った Android の新ライブラリ Data Binding によって圧倒的に行数を減らしてボイラープレートの問題は解決できるし、Data Binding は一部だけに適用もできるので規模を小さく、安全に少しずつ導入する事が可能です。

下記のネタをカバーします:
・Data Binding 移行の各ステップ
・裏で行われている仕組みの説明
・Data Binding におけるベストプラクティス

このセッションに参加された方は自分のプロジェクトを Data Binding へ移行するのに必要な知識を持ち、Android 開発を気持ちよくできるような人になるはず!
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesケノドン・ブノア
29
2016/10/18 10:55:31Optimizing your App UI and View layerIt is important that our Android application could be fully optimized in order to allow a great performance in the whole environment of devices. For this, it is important that not only our application's layout must be well optimized but also that the logic behind the View layer is well coded. There are several when we are implementing the layouts such as "siblings instead of children" and to make this happen, lint tools, hierarchy viewer and the use of particular structures are the best options to achieve this. We'll see some examples and good practices that point to improve the performance of an Android application just optimizing the layouts and tuning the code in the View layer (activities or fragments using SparseArray) プラットフォーム (Platform)30分 / 30 minutescdmunozi
30
2016/10/19 11:06:48未熟なチーム開発トピック: チーム開発

未熟なチームでどうやってプロジェクトを進めていくのか

スタディサプリ English(https://play.google.com/store/apps/details?id=jp.eigosapuri.android)を、
自分と新卒とiOSエンジニアの3人で開発していくに当たって、初めにどういうことを考えたか、何がうまくいって、何が失敗したか。
中盤はどうだったか。リリース間際は何をしていたのか。
などなどの、決してスーパースターばかりのチームではないメンバーでどうやってプロジェクトをうまく進めていけばいいのか、試行錯誤した内容をお話しします。

agenda(仮)

- 前提条件
- 環境
- チーム構成
- 納期
- 開発序盤
- ルール決め
- 土台作り
- 反省点
- 開発中盤
- 途中からつくられたルール
- 魔女化
- 新卒を育てる
- スキルとタスクの粒度
- 反省点
- 開発終盤
- QA
- まとめ
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minuteskgmyshin
31
2016/10/20 0:48:02Xamarin.Android で始めるクロスプラットフォームモバイルアプリ開発■対象者
・Android中級者〜
・C# 初心者〜

■概要
Xamarin(ざまりん)は C# によるクロスプラットフォームモバイルアプリ開発ツールです。
Microsoft が2016年4月に買収して、一気に知名度が上がりました。

このセッションでは、 Xamarin とは、Xamarin.Android とは何か、C# や .NET Framework(Mono) の強力な言語・ライブラリ機能について触れ、通常の Android アプリ開発と Xamarin を使ったアプリ開発はどこが違って、どこが同じなのかを説明します。

また、今日のモバイルアプリ開発では、DataBinding、MVVM、Reactive Extensions(Rx) といった、Microsoft が源流となっている手法が広まって来ています。
Xamarin を使うと、MVVMパターンと Rx を使用し、大部分のコードを共有できる Android/iOS 両対応アプリケーションを開発できます。如何にしてコードを共有するか、できない場合にどのような解決策が用意されているかについてお話します。

■目次(仮)
1. Xamarin とは?
・Xamarin とは何か
・Xamarin.Android とは何か
・C# の利点(Java, Swift との比較)

2. クロスプラットフォームアプリ開発とコードの共有
・MVVMパターン
・Reactive Extensions / ReactiveProperty
・Portable Class Library(PCL)によるコード共有
・プラットフォーム固有の処理を行う方法

3. Open Xamarin、Open Microsoft
・Xamarin で使えるライブラリ(C#, Java)
・All Xamarin SDKs are open source
・.NET Standard

4. Xamarin の使いどころ
・採用すべきケースとしなくてよいケース
開発環境・ツール (Productivity and Tooling)50分 / 50 minutesamay077
32
2016/10/20 0:56:20The Journey from Legacy Code to Clean ArchitectureBuffer for Android was first made in 2012 - and since then it's seen a range of iterations and features. Whilst it's important for a product to grow in-order to meet the needs of users, it's easy for code to become unclean and lose any sense of architecture. This legacy code makes it difficult for us to maintain our product and build new features without the fear of breaking the app.

But there is light! At Buffer we've just started to re-architect and refactor our application for Android using a clean architecture approach. Re-crafting our application feature by feature with the help of RxJava, Dagger and tests in the form of jUnit and Espresso has began to result in a more stable, better architected and maintainable codebase.

In this talk we will explore the journey we took through refactoring from legacy code to a clean architecture. Starting with heart of our app, the Composer, we'll share our learnings and findings discovered on our journey and the benefits from doing so.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesJoe Birch
33
2016/10/31 23:05:04minneにおけるAndroidチーム開発対象: 初心者〜中級者
Android開発者が3人ほどのチームがスムーズに開発するために何をしているか知りたい人

ハンドメイドマーケットminneのAndroidアプリ開発は、2年ほど前まで1人で開発されてきましたが、今は3人で開発しています。ここ最近は「複数のキャリア決済対応」「ハッシュタグ」「ゲスト購入」といった大きな機能をスケジュール通りまたはスケジュールよりも早く開発・リリースしてきました。

これは、1人で開発していた時よりも安全にかつ高速に開発するために、MVPアーキテクチャ導入を進めて単体テストが増えた事も大きく影響していますが、他にもスムーズに開発するためにAndroidチームとしてやってきた事がたくさんあります。

今回は、Androidアプリ開発をしている3人が、開発をスムーズに行うためにやってきた事・やらなくなった事を説明していきます。

- 開発環境
- MVPアーキテクチャ
- テストの日
- コードレビュー
- プルリクエスト/イシューテンプレート
- レビュータイム
- 改善の時間
- リリース担当
- 朝会
- 褒める夕会
- Androidチームふりかえり
- リマインダー
など
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minuteshisaichi5518
34
2016/10/29 17:17:54Android Resources RefactoringAndroidでは、resディレクトリ下で様々なリソースをxmlで管理しています。
リソースはアプリの規模が大きくなるにつれて増えていき、秩序のない状態になりがちです。
開発しているアプリのcolors.xml、styles.xmlが綺麗に整理整頓されていると言える人の方が少ないのではないでしょうか。

私の所属するQuipperでは、デザインの統一に合わせて無秩序だったリソースまわりを整理しました。
デザインの変更にも強い設計で、エンジニアがデザインの実装で困ることも少なくなり、今見てもかなり綺麗に整理できていると思います。

このセッションでは、colors.xml、dimens.xml、styles.xmlなどのリソースの要素の命名やファイルの分け方について私なりの理想の指針を説明します。
その上で、既存のアプリのリソースをどうやってその理想の状態まで修正していったのか、チーム内でどうやって情報を共有していったのかといった、
『リソースまわりのリファクタリングをどう進めていくか』という泥臭い知見もお話ししたいと思います。

アプリのリソースを綺麗に保ちたい方、あるいは綺麗にしたいけれども効果や進め方がわからず足踏みしている方のお役に立てば幸いです。


## 草案(仮)
- Quipperでのリソースまわりの指針(命名規則、ファイル分割規則)
- styles.xmlは機能/画面単位で分割しよう
- リファクタリングBefore/Afterのインパクト
- リファクタリングのロードマップと締切の設定
- リファクタリングはcolors.xml、dimens.xmlから始めよう
- チーム内でデザイン番長を決めよう
- 規則をwikiに書いて共有しよう
- 細かい修正タスクを洗い出して他のメンバーに練習させよう
メンテナンス (Quality and Sustainability)50分 / 50 minuteskonifar
35
2016/10/21 15:10:16Embracing Layout Editor and ConstraintLayout.Since at the beginning of Android Development, ADT (Android Development Tools) provide us a Graphical Layout Editor where you can choose a widget and drag it into the editor and then edit the size or position of that widget as you like. Unfortunately, that Graphical Layout Editor didn't match the expectation. There were a lot of complains about the performance, the layout rendered in the Graphical Layout Editor and the result in real device are different. In the end people just gave up with the Graphical Layout Editor and choose to write XML directly instead.

But recently Android Tools teams released Android Studio 2.2 that comes with new Graphical Layout Editor and Constraint Layout. The new Graphical Layout Editor is really powerful and easy to use, with a lot of feature like Blueprint mode and Properties panel for setting properties of that widget. With the new Graphical Layout Editor, Android teams also released a new Layout called Constraint Layout that will also solve an old Android UI problem UI nesting. In the past we need to put a LinearLayout inside a LinearLayout to achieve the expected UI, or we can also put the childView inside a RelativeLayout and set the anchor of every view to accieve the expected UI. With that approach (especially LinearLayout one) we will ended up with nested Layout that will make the drawing time longer and unefficient. With ConstraintLayout, you can create a flatter layout with defining constraints between the view or use the new Graphical Layout Editor's automatic constraint inference engine to create the constraints automatically and then you will get same result with flatter layout and shorter development time (especially with automatic constraint inference engine.
UI・デザイン (UI and Design)30分 / 30 minutesNiko Yuwono
36
2016/10/21 17:49:29イケてる継続的インテグレーションよく使われていた sdk-manager-plugin が deprecated になりました。けれどプラグインを使わずにうまいこと継続的インテグレーションできる方法があります!

下記のネタをカバーします:
・gradle プラグインの自動ダウンロードの使い方 / TIPS
・Jenkins / CircleCI / TravisCI の比較
・Firebase Test Lab と CircleCI の連携方法
・公開プロジェクトのキーストアの扱い方

このセッションに参加された方は継続的インテグレーションを実現するのに必要な知識を持ち、最適な CI 環境を構築できるようになるはず!
開発環境・ツール (Productivity and Tooling)50分 / 50 minutesケノドン・ブノア
37
2016/10/21 19:09:04Android OS 2.x時代の昔懐かしいアプリがマテリアルデザインを手に入れるまでのお話某インターネット企業(非スポンサーセッションのため非公開、問題なければ公開します)では近年、アプリに力を入れ始めました。そんな中、誰も正式な担当が付かずにボランティアの運用で維持されてきたAppウィジェットがありました。Android OSが2系の頃に作られたこのアプリは立体的で丸っこい見た目をしていて、見るからに懐かしさを感じさせる代物でした。
2015年、ある取引先企業の意向により、この懐かしいデザインのAppウィジェットを、流行のマテリアルデザインに改修してくれとの素敵な要望が届き、ボランティアとしてAppウィジェットの運用に携わっていた私は、デザイナーの方がいない状況にもかかわらず、この要望に応えるべく独学でマテリアルデザインを学び、業務の空き時間を利用して実装に取り組み、リリースまで持っていきました。
もちろん、Android アプリはリリースしてからが本番です。ボランティア状態の開発者が1人しかいない状態でもクラッシュレポートは上がりますし、Android OS は進歩を続けていきます。それらの対応も当然必要となります。そして、お察しの通り、そのAppウィジェットは Eclipse+ADT プラグインという皆様の記憶に深く刻まれているであろう環境で開発されていました。どういうことかは皆様よくお分かりだと思います。
このセッションでは、ただの苦労話をするつもりなので、お聞きにいらした皆様の業務で役立つ知見を与えらえるかは自信がありません。最新の技術の話はまったく出てきません。イカした開発環境やテクニックの話も出てきません。それでも、昔ながらの環境を少しでも良くしたい、という強い気持ちをお持ちの方の助けになる話ができればと思っております。

対象:
・Android OS 4系以前の昔懐かしいアプリをそろそろMaterial design対応させたい、野心溢れるAndroidアプリ開発者
・ゆでガエルになりたくないAndroidアプリ開発者
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesHiroki Kitamura
38
2016/10/21 23:24:50Function introduction of Google Play Services■概要
Google Play Servicesには様々な機能がありますが、あまりよく知られていない機能も多くあります。
その中から今回はGoogleサインインを簡単に実装するためのGoogle Sign-In API、Google+1ボタンを簡単に実装することができるPlusOneButton、メールやSMSで友人・知人を簡単に招待できるApp Invites、Google Play Servicesに依存しているFirebaseの一部の機能についての実装方法や実装してどう変わったのかなどの検証結果についてお話します。

■対象者
- Androidアプリ開発をある程度やったことのある人
- App Invitesに興味がある人
- Google Sign-In APIに興味がある人
- ASOが気になる人

■目次案
- Google Sign-In API
- 以前のGoogleサインイン
- APIの概要
- このAPIの何が良いのか
- 実装方法・サンプルコード
- Google Plus One Button
- Google+1ボタンとは
- Google+1はGoogle Playの順位に影響するのか
- やったこと(どう実装したのか)
- 検証結果
- これはやるべきなのか
- App Invites for Android
- App Inviteとは
- App Invitesのフロー・仕組み
- Firebase Invitesと何が違うのか
- App Invitesの数値のとり方
- 実際に実装して検証してみた結果
- これは導入すべきなのか
開発環境・ツール (Productivity and Tooling)30分 / 30 minutessyarihu
39
2016/10/22 3:00:42Practical Dagger 2 - Beyond TestingIn the current climate of Android development many developers stress the importance of clean architecture and testing, myself included. But often it is a difficult sell to product/management (Or even technical directors) to allocate time to avoid technical debt and stop regressions. This talk will be go from setting up a project with an implementation of Dagger 2 to supercharging your development and removing the plumbing of your app that would otherwise by necessary without Dagger 2.

The goal of this talk will be to take a basic understanding of Dagger 2 and to bring you closer to being able to implementing it into your app so it aides you regardless of whether or not you end up having time to test.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesPatryk Poborca
40
2016/10/23 16:18:30こわくない! Fragment概要
好むと好まざるとにかかわらず、普段からFragmentを使う機会は多いとおもいます。
しかし、ライフサイクルが複雑だったりハマりどころがあったりして苦手意識を持っている方も少なくないのではないでしょうか。
普段は使うばかりでなかなか実装を読む機会のない、Support LibraryのFragmentや関連クラスのソースコードを見ながら、Fragmentの仕組みを学び、Fragmentと上手に付き合えるようになることを目指します。

対象
Android FrameworkやSupport Libraryにある程度慣れている中級者以上を対象とします。

内容案
・FragmentActivityはいかにしてFragmentを保持しているのか
・Argumentsは誰が管理しているのか?
・Fragmentのライフサイクルをコードレベルで追いかける
・LayoutからinflateされたFragmentの扱い
・Fragmentの仲間たちとの付き合い方 - FragmentPagerAdapter系, DialogFragment系
プラットフォーム (Platform)30分 / 30 minuteskikuchy
41
2016/10/24 4:14:10Keeping it SOLIDFed up of code that's difficult to refactor? Tired of code smells? Tired of working with messy software architecture? Having personally worked with legacy code on a regular basis, I began to understand how important it is to alleviate these pains. Luckily for you there are five principles of object-orientated design that can help us to craft software that is both easy to maintain and extend, these principles are known together as SOLID.

In this talk we'll look at what makes up the SOLID acronym and what each principle means for our code - followed by how we can use these principles to improve both the code we maintain and also code we write in the future. Working with legacy code on the android app at Buffer has given me the opportunities to apply these principles when both refactoring and rewriting parts of the project. From this we'll be looking at real world examples to help us understand how the different aspects of SOLID can be implemented into our own projects to create the same result of a better crafting system.

By the end of this talk, we'll be more familiar with the concepts of SOLID and how we can use the approach during development to write more maintainable and extensible code.
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesJoe Birch
42
2016/10/24 17:14:12Doing Android Libraries The Right WayAs more and more people start building Android Libraries , the whole process of building a better api for developers is getting bloated and everyone is coming up with their own ideas. However if android library developers follow a certain standard with a rationale they can avoid most of the pitfalls. Building an android library is easy , but building one that keeps in mind developer happiness is rare but definitely not hard, provided the android library developer keeps in mind a certain set of points such as every developer who uses the android libraries faces a common problem of inconsistent and non-informative api exposed by android sdks developer. All that can be avoided and fixed very easily during the time of planning and developing the android sdk. The session would cover how one can expose more informative api , make sure the best resources are utilized and that one does not force the app developer who is using our android library with redundant dependencies and complexities.
In a gist, the session would be covering the do's and don'ts of building a proper android library.
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesNishant Srivastava
43
2016/10/24 22:14:25 エンジニアが武器にするMaterial Design■概要
Material Designは2014年にGoogleが提案したデザインガイドラインであり、最近では多くのAndroidアプリで採用されています。
ノハナ社では2016年1月からエンジニア主導でアプリのMateiral Design化をじっくりと進めています。
エンジニアがデザインに関わるとどのような利点があるのかをノハナ社の事例を元にお話します。

■目次案
・エンジニアがMateiral Designを理解する利点
 ・Material Designの特徴とエンジニアの思考
 ・デザイン巻き戻り工数の削減
 ・エンジニアにしかできないユーザー体験の向上
・Material Design化の進め方
 ・ノハナ社のデザインフロー
・Material Designを広めるために
 ・社内勉強会とその後のフォロー
・Material Designの思想背景を理解するための思考法
 ・なぜBottom navigationではBackキーでコンテンツを切り替えるべきでないのか
 ・なぜSupport LibraryにもデザインガイドラインにもProgress Dialogがないのか

■対象者
・Material Designをなんとなく知っていてもっと理解を深めたい方
・デザイナーの言いなりで実装するのが嫌な方
・その他、アプリのUIを改善したい気持ちを持っている方
UI・デザイン (UI and Design)50分 / 50 minutes 瀬戸優之
44
2016/10/24 23:35:09Data Bindingで実現するMVVM Architecture■概要
Data Binding使うことでAndroidでもMVVM Architectureが簡単に実現できるようになりました。View-ViewModel-Modelの責務を明確にすることで、見通しの良いコードが記述できるようになります。MVVMで実装する時のポイントなどについて話します。
MVVMの導入を検討している方や、興味のある方の参考になれば幸いです。

■内容案
* MVVM概要
* Data Binding概要
* Viewの役割、実装例
* ViewModelの役割、実装例
* RxJavaと組み合わせる

■対象者
設計に興味がある方
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesKenji Abe
45
2016/10/25 9:56:09Androidで音声認識を使いこなす■対象
Android アプリ開発経験者初級者〜上級者
音声認識に興味があるが、触り程度しか使っていない方

■内容
近年Googleの「OK google」のCMや、iOSのSiriの普及により、スマートフォンで音声認識を行うことが一般的になってきた。これらの技術には音声認識技術が使われていることが明らかではあるが、文章入力なのか、コマンド入力なのか、学習データ入力なのか等用途によっても様々な手法を扱われる。本セッションでは、これらの様々な手法を解説するとともに、実際に自分で開発・実装するにはどうすれば良いのかを示す。

■構成
* 音声認識の概要
* Android Speech Recognizerを使いこなす
* 様々な音声認識エンジン
* 連続音声認識とは
* 自分のアプリで「OK Google」のような機能は作れるのか
* 音声認識機能全般の評価について
* Drivemodeでの活用

■本セッションに関連する話題
* 音声認識
* 音声認識エンジン
* 雑音抑圧
* Android
* Service
* プロセス間通信
* AIDL
プラットフォーム (Platform)30分 / 30 minutesKAKKA
46
2016/10/25 10:43:26RxJavaを使わないあなたのための、CursorLoader再考■内容
Activity/Fragmentのライフサイクルと同期し、標準のクラスとして提供されているCursorLoaderですが、最近はRxJavaに押されて影が薄くなりつつあります。
CursorLoaderには、以下の欠点があります。
- ContentProviderを作らなくてはならない。
- 複数のCursorが必要な時には、その分だけCursorLoaderが必要。
- Cursorにしか使えない。

本sessionでは、簡単なカスタムのAsyncTaskLoaderを導入することで、これらのCursorLoaderの欠点を全て解消した以下のLoaderを作る方法を提示します。
- ContentProviderを経由せずに、直接SQLiteにアクセスできる。
- 複数Cursorのみならず、任意のデータをロードできる。

■対象者(中級者以上)
- ContentProviderなんて簡単だと言われて作ってみたが、JOINやprojection mapが必要になり苦しんだ人。
- RxJavaを使う世の中の風潮に抗いたい人。
- Androidの標準APIでがんばりたい人。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesHiroshi Sakurai
47
2016/10/25 13:06:22Decoupled, Testable, Maintainable – Clean architecture for AndroidBuilding decoupled, testable and maintainable code for multiple devices is hard. Done right, it can tremendously increase the quality of your applications.
This talk shows an architectural approach that allows building modular components for robust app development on all devices.

The architecture presented, based on uncle Bob's "clean architecture", gives developers all the knowledge they need to create the essential layers of their applications.
Small modular classes allow easy unit testing, while maintaining a clear separation of concerns allows having well defined business rules.

This talk includes a demo, showing how the presented concepts can be applied to many common use cases: Database access, reading from and writing to the cloud and accessing platform dependent functionality, like the device's location.
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesJohannes Borchardt
48
2016/10/25 18:49:14いまからはじめるAndroid 6.0対応 〜Android 7.0から8.xを見つめて〜知ってます知ってます。いまの最新版(droidkaigi開催当時)って7.1であることを。

とはいえAndroid 7.0対応の前にAndroid 6.0の対応が出来てないまま、誤魔化し誤魔化しアップデートを続けているアプリがあるんじゃないでしょうか?
いまはなんとかなっても、いつかはどうにもならず「苦渋の決断」をする日がくるのではないでしょうか?

本セッションでは7.0に向けた復習として、自分が業務で「いやここで対応すべきだ」と決断していくつかのアプリを6.0対応した際に得たノウハウを共有いたします。さあ、みなさんも早いうちに6.0対応を果たし、気持ちよく7.0対応を迎えましょう!

主に話す内容
* Apache廃止に伴う対応(さよならVolley、こんにちはokhttp)
* パーミッション対応と、コード以外に考えること
* その他、Android 7.0に加え、さらにその先のアップデートに備えて気をつけることはなにか
メンテナンス (Quality and Sustainability)30分 / 30 minutesyamacraft
49
2016/10/27 1:34:31ドキッ★脆弱性 onCreate() から onDestroy() まで■対象者
初心者〜上級者。
Androidアプリで実際に公開された脆弱性について興味のある方。

脆弱性はバグです。バグは必ず産まれるものです。例えセキュアコーディングガイドを隅から隅まで暗証してたとて、予期せず脆弱な実装は世にでるでしょう。本発表ではJVN49343562とJVN61297210が付与されたAndroidアプリ「マネーフォワード」の「WebView クラスに関する脆弱性」「任意の操作が実⾏可能な脆弱性」について、下記のアジェンダ(仮)でご紹介いたします。

- 脆弱性対応タイムライン
- 脆弱な実装の紹介
- 脆弱な実装の修正
- 脆弱な実装の背景
- 俺たちはどう脆弱性に向き合っていくのか

こういたノットベスト・プラクティスを共有することで、世の中のアプリの品質がより高くなることを願っています。又、一歩踏み込んでこういったバグをも知見としてオープンに共有できる文化作りに一端を担いたいと思います。
メンテナンス (Quality and Sustainability)30分 / 30 minutesken5scal/鈴木研吾
50
2016/10/27 8:26:43Keeping your app in shapeHaving a performant Android app is a requirement to keep users happy. This talk will be an exploration of different techniques and tools I have used to make apps better. メンテナンス (Quality and Sustainability)50分 / 50 minutesCarlos Sessa
51
2016/10/27 14:38:31RxJava for Beginners: Benefits and DownsidesThere has been a lot of chatter about RxJava in Android lately. While some developers have fully embraced it, there are still some who have reservations. Due to the steep learning curve that comes with using RxJava, many have not had the time to fully understands its benefits and downsides. Is RxJava just another new shiny technology? Or can it actually help your development process? In this talk, we will look at the pros and cons of using RxJava. I will also show examples of common beginner mistakes when using RxJava. There will be code snippets to compare how your code can look with and without RxJava. We'll also look at common use cases of RxJava, and go through a few examples of when it can be helpful. Attendees will walk away with a better informed decision of how, if at all, RxJava can be used in their projects.開発環境・ツール (Productivity and Tooling)50分 / 50 minutesCaren Chang
52
2016/10/27 14:49:15App Shortcuts in Android Nougat 7.1In Android Nougat 7.1 the ability to create app shortcuts was introduced. Implementing shortcuts into your app helps guide users to specific parts of the app. If implemented correctly, it can help simplify the way users interact with your app, thus providing a delightful user interface experience. In this talk we will see an example of how to create app shortcuts. We will also talk about the different kinds of shortcuts you can create (static and dynamic) and how to chose which one to implement. Lastly, we'll talk about how to create a proper back stack of activities once the user launches the app through a shortcut. By the end of the talk attendees should have a clear understanding of how to help increase user engagement by making it easier for users to use their app.UI・デザイン (UI and Design)30分 / 30 minutesCaren Chang
53
2016/10/27 16:23:44How to stay up to date with the latest Android technology
I would guess this talk will be the most beneficial for those developers who are new or have 1-3 years of experience in Android development.

——

Technology is evolving every single moment, even right now. Although it does not mean you have to be the first one to know the latest information, we, Android engineers, are all obligated to be up-to-date with the latest technology. This is because choosing and applying the latest technology can be (or can NOT be) the best solution for our essential daily task: create new Android apps or solve existing problems that your apps encounter in order to achieve the best outcome possible with the minimum costs required.

This talk will show all the practices and attitude that I have personally practiced, enhanced, and grown over time to stay up to date with the latest Android technology, such as

- Recommended external sources: websites, podcasts, conferences, etc.
- Daily routine that I do every day for input
- Attitude and opinion toward “output for input”

By the end of this talk, attendees will know a list of external sources that they can start checking every day, sample routine work that may or may not fit to their daily lives, and one attitude or opinion toward input process through outputting the knowledge, all for staying up to date with the latest Android technology.
その他 (Other)30分 / 30 minutesShohei Kawano
54
2016/10/27 19:19:11Androidで使えるJava/C++相互運用環境 '17JavaとC/C++で書かれたネイティブライブラリの相互運用は面倒な問題です。Javaの世界では、この問題にさまざまな人たちが取り組み、数多のバインディング自動化機構を構築してきました。
本セッションでは、特にAndroidでの利用可能性を意識しながら、一方でJava以外の技術も視野に入れつつ、それらの技術のいくつか、実例も含めて紹介したいと思います。(この種のフレームワークはmoving targetなので、当日まで主にどれを紹介するかは未定です。)
開発環境・ツール (Productivity and Tooling)30分 / 30 minutesAtsushi Eno
55
2016/10/28 11:48:36Firebaseを自社アプリに取り入れた話【対象者】
自社サービスとしてアプリを運営している開発エンジニア、およびアプリ開発を受注しているSier関係者
【発表内容】
2016年5月にメジャーバージョンアップデートが行われたFirebaseを自社アプリに取り入れるにあたって、決裁者に導入するためのアグリーを取りに行った話をします。
「新しいことを始めたい!」、「もっといいやり方を提案したい!」、「でも、上司、お客さんは従来通りの古いやり方しか理解していないから提案できない」という方に提案の仕方の一例としてご紹介できればと考えております。
また、導入にあたって注意したポイントもご紹介いたします。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutes高澤 英悟
56
2016/10/28 17:28:38Building my own debugging tool on overlay■対象
アプリのデバッグに工夫を加えたい初級者〜
■内容
アプリの動作を検証する上で、画面の表示以外の目に見えない部分で何が起きているかを知ることはとても重要です。デバッグ実行中であれば、デバッガをアタッチしてステップ実行をしたり、各モデルの状態を都度確認したりすることができますが、QA などリリースビルドを用いた動作テストではデバッガを使うことができず、また ProGuard の設定によってはログ出力も削られてしまうため、動作に問題が起きたときの検証に工夫が必要となります。
本セッションでは、Android の開発者オプションで使われているような各種デバッグ情報の表示を参考に、デバッグに役立つであろうログ出力を画面に表示する方法を提示します。これによって、誰でも簡単に自分で同様のツールが作れるようになります。
開発環境・ツール (Productivity and Tooling)30分 / 30 minutesKeithYokoma
57
2016/10/28 18:07:07分野が違う人たちで作り上げるAndroidチーム開発対象:初心者〜中級者、チーム開発に興味がある方
概要:このセッションでは、スタートアップの会社がAndroid開発を少ない人数でいかに爆速で開発したか、チーム開発や手法などについてお話しします。

私が所属しているSpacemarketではプラットフォームとしてWeb,iOSは既にありますが、Androidだけが遅れていました。私とWebエンジニア,デザイナーの4人でアプリを作る上でチームとしてどうやって開発を進めたのか、アーキテクチャの選定、開発においての苦悩など開発の裏側の泥臭い部分をお話ししたいと思います。

agenda(仮)
- 環境
- チーム構成
- ベース作り(アーキテクチャ)
- 短期間で開発
- デザイナーを巻き込む
- 反省点
- etc
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesAkitsugu Tamagawa
58
2016/10/28 18:41:38Android High PerformancePerformant applications are one of the key drivers of success in the mobile world. Users may abandon an app if it runs slowly. Learning how to build applications that balance speed and performance with functionality and UX can be a challenge; however, it's now more important than ever to get that balance right.

This session will show you how to wring the most from any hardware your app is installed on, so you can increase your reach and engagement. An introduction to state–of-the-art Android techniques and the importance of performance in an Android application will be introduced, and later we will slowly walk through the Android SDK tools regularly used to debug and profile Android applications, learn about some advanced topics such as building layouts, multithreading, networking, security and battery life ( one of the biggest bottleneck in applications).
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesEnrique López Mañs
59
2016/10/28 18:54:45失敗から学ぶアプリを運用するために開発で考えるべきこと(ぼっちエンジニア編)対象:初心者〜中級者のぼっちエンジニア

2011年頃から業務でAndroidアプリの開発を続けてだいたい6年。
開発する上で「良かれ」と思った仕様や設計で失敗したこともたくさんありました。
そしてこの6年、幸か不幸か複数のアプリを掛け持ちしながら運用を続けた経験もありました。

そんな中で痛感したことは「運用」を意識しないで開発すると、本当に「痛い目」に会うなあという事。
今回はそんな6年間の中で感じた「痛い目」に触れながら「運用することを意識しながら
アプリを開発するには何を考える必要があるか、そのためにエンジニアに何が必要か」
を共有できればと思います。

こんな感じの人がこんな感じのことに触れるかもしれない一覧
- プロデューサー、サーバサイドエンジニア1名、アプリエンジニア1名、デザイナー1名体制だ
- サーバサイドエンジニアとの繋がりがAPIしかない
- プロデューサー含め周りがiOSユーザーばっかりだ
- アプリデザイン経験がないデザイナーとのふれあい方
- 「運用」ってなんだ?
- なにが「良いアプリ」なんだろう
- 検証端末に飢えとしのぎ方
- 『自衛』のための知識吸収と「攻め」
- 「強い」エンジニアになる
- 失敗したライブラリ選定/「安牌」ってなんだろう
- 「必要な人間」になろうとしてはいけない
- お金、一番大事

内容にはかなり特殊/後ろ向きな内容が含まれる恐れがあります。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesyamacraft
60
2016/10/28 22:58:04Practical Vector DrawableSupportLibrary23.2よりsupport-vector-drawableが追加され、Android L未満でもVectorDrawableが使えるようになりました。
VectorDrawableを使えば、画面解像度ごとの画像リソースを減らせるだけでなく、色や大きさの変更が容易になるなど様々な恩恵を受けられます。

一方で、VectorDrawableは使い方を間違えると描画に時間がかかってしまったりするなど、注意しなければならない点もいくつかあります。
また、既存のpng画像をvector画像に置き換える場合、デザイナーとの協業やエンジニア同士のレビューも少しやり方を変える必要があります。

本セッションでは、VectorDrawableの内部の仕組みから導入方法を軽く説明した後、効果的に使うための実践的なTipsをいくつか紹介します。
以下の内容に触れる予定です。

- VectorDrawable Internal
- 既存のアイコンからVectorDrawableを作る
- VectorDrawableの便利ツール紹介
- VectorDrawableアンチパターン
- SketchファイルからVectorDrawableをエクスポートする部分の自動化
UI・デザイン (UI and Design)30分 / 30 minuteskonifar
61
2016/10/29 3:15:16Beyond Multidex - Scaling Android cosebasesWhen scaling an Android team from 15 to 30+ engineers in less than a year and in a codebase with over 200k methods, unforeseen problems start to arise in areas which are not usually seen for smaller teams and apps. For example, build times, developer productivity, IDE performance and a whole set of new challenges are faced every day, making it a non trivial task.
In this talk, we'll cover essential tools and techniques used at Airbnb while scaling the team, while maintaining a fast pace and sanity.
開発環境・ツール (Productivity and Tooling)50分 / 50 minutesfelipecsl
62
2016/11/01 7:01:45Android CDD 7.0■対象
Android APIの仕様の知識があるアプリ開発者・フレームワーク開発者
Androidデバイスの仕様の知識があるアプリ開発者・フレームワーク開発者
(実装の技術レベルは問いません)

■内容
CDDとは Compatible Definition Documentation の略で、Androidの互換性を定義した文書です。
2016/10/29に Android 7.0 Nougat に対応したCDD 7.0が公開されました。
CDD 6.0は74ページの大作でしたが、CDD 7.0では85ページとさらにボリュームアップしています。
本セッションではCDD 6.0からCDD 7.0で変更及び追加された内容について解説します。

■構成
* Android CDDとは
* CDDとCTSの関係
* CDD 7.0の概要
* CDD 6.0からCDD 7.0の変更・追加された内容

■本セッションに関連する話題
* Android Framework
* 後方互換性
* 機種後換性
* SDK
プラットフォーム (Platform)30分 / 30 minutesroishi2j2
63
2016/10/29 12:55:51Best Practice for FragmentFragment利用時のお作法、はまりポイント、ベストプラクティスを総復習します。
Navigation Drawer や Bottom Navigation、ViewPager と組み合わせる際に、メモリーリークを回避して正しく画面回転に対応する方法などを紹介します。
プラットフォーム (Platform)50分 / 50 minutesあんざいゆき(yanzm)
64
2016/10/29 13:09:26WebページのAndroid対応Tipsスマートフォン向けWebサイトを作る際の、Android向けtips集です。

- theme-colorタグでシステムUIとの親和性を高める
- ショートカットをホームに追加
- バックキーでモーダルを閉じよう
- ©を絵文字にしないために
- その他...
その他 (Other)Web30分 / 30 minutesmstssk
65
2016/10/29 13:13:53トークアプリで絵文字を実装した話対象:
Android開発の経験がある方、興味がある方


概要:
業務で開発していたトーク機能を持つアプリに独自絵文字を実装した話をします。

誰かとメッセージのやりとりをする際に、単純な文字だけ送るよりも絵文字を追加することで表現豊かなメッセージを送ることができます。
絵文字はガラケーの時代から存在しており、スマホがメインになった現在においても
キャリア独自の絵文字やキーボードアプリ独自の絵文字など様々な絵文字が存在しています。
私が開発していたトーク機能を持つアプリでもそういった絵文字が多く使われていましたが、
端末の違いによって送信側と受信側で異なる表示になってしまうことも少なくありませんでした。

そこで、アプリ独自絵文字を実装することで絵文字を使った表現豊かなメッセージを、表示の違いなどが起きないよう可能にしました。
実装にあたってはトークで使うため表示の高速化や絵文字自体のクオリティにも注意して実装していました。
発表では実装にあたって苦労した点、どうやって乗り越えたか、そこから得た知見などお話できればと思います。


目次(予定):
- 絵文字導入にいたる経緯
- 絵文字導入前に必要な機能を洗い出す
- 実装中にあたった壁と解決方法
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesfutabooo
66
2016/10/29 13:17:46How to apply DDD to Android Application DevelopmentMVPだのクリーンアーキテクチャだのさまざまなアーキテクチャをAndroidに適用してみた話が花盛りですが、
他のプラットフォームでうまくいったアーキテクチャをAndroidに適用してうまくいくでしょうか?
アーキテクチャが何を目的としたものなのか正しく理解せずに、技術的なパターンだけ適用してうまくいくでしょうか?

このセッションでは特定のアーキテクチャではなく、ソフトウェア開発手法・設計理論であるDDD(Domain Driven Design : ドメイン駆動設計)をAndroidアプリ開発に取り入れる方法について話します。
DDDの内容については「エリック・エヴァンスのドメイン駆動設計」及び「実践ドメイン駆動設計」に準拠します。

対象者
- DDDについて正しく理解したい人
- 特定のアーキテクチャの技術的パターンだけを適用することに疑問を感じる人
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutesあんざいゆき(yanzm)
67
2016/10/29 13:56:49コマンドなしでぼくはAndroid開発できない話■対象者
Android開発をする上で便利なコマンドを知りたい人
Android開発をより効率的に行いたい人
GUIよりコマンド(CUI)が好き人

■概要
このセッションでは30分とにかくAndroidに関するコマンドの話をします。

Android Studioでlogcatを見れたり、Android Monitorから色々見れたりしますが「それターミナルからコマンドで見れますよ」と言いたいわけです。
コマンドを介せばさらに細かく端末の情報を確認することができます。
コマンドから文字を入力したり、Backキーを押したりとコマンドを介して端末操作もできます。
Intentの発行など人力で行うと面倒な作業もコマンドからなら楽にできます。
色んなコマンドを知ることで、Androidの状態や仕組みを理解する機会にもなります。

そんな「コマンドでAndroid開発を楽しみたい・効率的に開発したい!」というみなさまの熱い期待にお答えするセッションです。

私が日々使用しているコマンドからいざって時に役立つかもしれないコマンド等、色んなコマンドをご紹介していきたいと思います。
実際にコマンドを実行しながらどんなことができるものなのかを見ながら紹介していくものも用意する予定です。
コマンドを知ることで、今まで以上に作業効率の向上、Android楽しさ・奥深さを知っていただけると嬉しいです。

具体的には以下の様なものをメインで話す予定です。
* adbコマンド
* Androidのshellコマンド
* adbを便利にするTool
* Androidのコマンドを支える技術
* コマンドを組み合わせたTips
開発環境・ツール (Productivity and Tooling)30分 / 30 minutesoperandoOS
68
2016/10/29 15:01:47N is for Notification本セッションでは最新の情報に基づいたノーティフィケーション(通知)機能を紹介します。
またAndroid OSのバージョン依存を解決するアプローチを理解できます。

Androidの通知バーは最新の7.xに至るまでのあいだに多くの機能変更、追加が行われてきました。
たとえばカスタマイズできるスタイル、Heads-up、グループ化などが追加されています。単純な通知機能以外にもタイルAPIなどもあり、バージョン差が大きい機能といえます。

本セッションでは、特にノーティフィケーションに焦点をあて、ユーザーが欲しい情報を効果的に届ける方法を紹介します。
また機能だけにとどまらず、バージョンによる差分をどのように吸収するかというアプリ開発の課題についても触れていきます。
セッションではNotificationCompatを題材に機種依存、バージョン依存の攻略手法を例示しながら
アプリケーション開発でバージョン差を吸収するための指針を示します。
Androidの歴史を振り返り、プラットフォームへの知識を深めるのに最適です。
プラットフォーム (Platform)30分 / 30 minutesmhidaka
69
2016/10/29 15:07:15How to remodel current testing environment【対象者】
・新しく入ったプロジェクトのテストをどうにかしたい人
・現状のテストの信頼性に不安のある人
・テストを書くときどこまで書けばいいのか分からない人
【内容】
BDDを始めとする思想では、テストを用いてそのアプリケーションの動作を保証・信頼します。
テストがないプロジェクトは信頼できない。という話を聞いたりもしますが、では「存在するだけ」で信頼できるものでしょうか。
あるいは「信頼できるテスト」は開発者にとって常に「良い物」なのでしょうか。
各開発者が持つテストに対する意識が異なる場合、テストの粒度はまちまちとなり、信頼できるテストとできないテストが混在するでしょう。
またどんなにテストを信頼していたとしても、記法・表現方法などの問題からテストを書くこと自体が負担となることもあります。

途中参加した2つのプロジェクトに対して導入したテストドキュメントの整備方針などから、具体例を交えつつ、上記の問題点をどのように解決するのかをお話できればと思います。

コンテンツ
・テストストラテジーの作成
・テストポリシーを用いた開発者間の意識共通化
・Test doubleという考え方のおさらい
・Test Size
・設計思想に合わせたテスト作成ポリシー
・MockableなAPI
メンテナンス (Quality and Sustainability)30分 / 30 minutesred_fat_daruma
70
2016/10/29 15:23:27AndroidTV「もしかして...」 FireTV「俺たち...」 「「全然対応されてない〜〜!!??」」概要:
TVデバイスは前前前世からブラウン菅→液晶→3Dと渡り歩き、
スマートテレビに辿り着きました。
近年、 本格的にAndroidを搭載したTVデバイスが普及し始めています。
みなさんのアプリはTVデバイスに対応していますか?
私が担当しているプロジェクトでは先日FireTV/AndroidTV(仮)に対応しました。
しかし、現状TVデバイスに対応するための知見はまだまだ少なく、
スマートフォン向けのアプリ対応と比べて開発の敷居が非常に高いと感じています。
 
このセッションでは、
今後TVデバイス向けアプリ開発を検討している人にフォーカスし、
導入→開発→運用と実践的な話をします。

 主なキーワード: FireTV, AndroidTV, Leanback

対象ユーザ:
・スマートフォン向けAndroidアプリ開発経験がある方
ハードウェア (Hardware)30分 / 30 minutesogaclejapan
71
2016/10/29 15:33:09Androidアプリのストレージ戦略 ~AndroidってSDカード使えるんでしょ?~本セッションでは「AndroidってSDカード使えるんでしょ?」と急に出てきたちょっとヤバそうな仕様との付き合い方、
「気づいたらアプリで容量使いすぎて死にそう」という機能要件をクリアするためのストレージ戦略を解説します。
内部/拡張などストレージの種類を問わず、アプリがデータを保持するための最適な場所について横断的に考察します。

今は昔、古来のAndroidアプリではSDカードのパスを探すだけで一苦労がありました。
現在、Android SDKが提供するExternal Stroage APIでは拡張ストレージへのアクセスを可能にしており、
アプリはより多くの情報を拡張領域に保存できます。

セッションではアプリケーションの種類や保存するコンテンツの性質を考慮しながら内部/拡張ストレージを上手に使い分ける方法を紹介します。
利用にあたってはマルチアカウント、端末の空き容量、クラウド連携、暗号化など設計上考慮すべきポイントを押さえつつ、
過去のTipsが今も使えるのか?という疑問やAndroidアプリ開発のスタンダードは存在するのか?という設計上の課題を解消します。
ハードウェア (Hardware)50分 / 50 minutesmhidaka
72
2016/10/30 17:13:22実践 Kotlin on Android 2017DroidKaigi2017が開催される頃にはKotlin 1.0がリリースされて1年が経過します。本セッションでは2016年4月にKotlin 1.0をAndroidのプロダクトに導入し、現在に至るまでに開発の中で得たノウハウについて解説します。

Android開発に導入する際に懸念となるランタイムサイズやメソッド数に関する最新の情報、Kotlinが解決するAndroidアプリケーション開発の諸課題、Kotlinがアプリケーション設計に与える影響、kaptなどAndroidアプリケーションで利用する際の既存の課題などを中心に話します。次期バージョンであるKotlin 1.1や、Kotlinが今度どのように進化するかを議論するKEEPなどの情報を交えて、KotlinでのAndroidアプリケーションがこれからどのように変化しそうかなどについても言及します。

目次案
- Kotlinの概要
- Kotlinの現況とマイルストーン
- Kotlinが解決するAndroidアプリケーション開発の諸課題
- Kotlin導入に当たって検討すること
- Kotlin on Android実例集
- Kotlinがアプリケーション設計に与える影響
- ここが厳しいKotlinとXX (DataBindingやkaptなど)
- KotlinとAndroidの今後
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutessys1yagi
73
2016/10/29 16:40:47マッチョActivityを改善した話マッチョActivityを改善した話

pairs(https://play.google.com/store/apps/details?id=jp.eure.android.pairs&hl=ja)でマッチョActivityを改善した話をします。
ざっくりと、pairsは以下のような不健康な状態でした。
- 1000行超えActivity/Fragment
- Viewのコードとビジネスロジックが交じり合うActivity/Fragment
- staticメソッド群で実装されたApiClient/DataAccessObject

このような状況で様々な問題に悩まされていました。
- どこになにが書いてあるのか分からない
- 手を加えたら思わぬところに影響がでた

*本発表ではアーキテクチャに関する詳細な解説等は行いません。
マッチョActivityを潰すためにどのように手を付けていったのか、進めていったのかをメインに話します。

目次(予定)
- pairsについて
- 改善前のpairs
- 改善の準備
- ActiveAndroid->Orma/Retrofit 1->2
- 改善
- Model
- View
設計・開発手法 (Architecture and Development Process/Methodology)50分 / 50 minutes@lvla0805
74
2016/10/29 18:50:44位置情報を正確にトラッキングする技術Pokemon GOによって再び位置情報を使ったアプリに注目が集まっていますが、AndroidのLocation Managerをそのまま使っただけでは精度の良い位置情報をトラッキングすることはできません。
このセッションでは
- バックグラウンドで安定的に位置情報を取得するアーキテクチャの作り方
- LocationManagerに設定する最適なCriteriaの作り方
- 高精度の位置情報を取得するための各種フィルターの作り方
の順に、UberやNike+と同等かそれ以上の精度の位置情報トラッキングを可能にする方法を説明します。
デモアプリと実際のフィールドテストのデータを用い、トラッキングアルゴリズム開発の過程でパフォーマンスをどのように検証していくかという方法論も説明し、参加していただいた方が自分のアプリのニーズにあった位置情報トラッキングアルゴリズムへカスタマイズしていくためのヒントも提供できればと思います。
また位置情報精度とバッテリー消費量の関係についても実際の検証データを使って考察する時間を取りたいと思います。
プラットフォーム (Platform)30分 / 30 minutes水鳥敬満
75
2016/10/29 19:40:06スタートアップにおけるデータドリブンな意思決定■ 内容
アプリの成長に重要な、データドリブンな意思決定について話します。
一年強、スタートアップでAndroidアプリを成長させるための開発に取り組んできました。
我々のようなアーリーステージのアプリでは、自分たちが提供できる価値を素早く見定めることが大切です。
しかし当初、あまり重要でない機能に時間をかけすぎてしまったり、余分な機能を盛り込みすぎてメンテナンスコストが増大してしまうことがありました。
それを改善するためにデータを中心とした意思決定に力をいれたところ、より方向性が明確になり、自信をもった意思決定ができるようになってきたと感じています。
同様の課題を抱えるサービスで役に立てて貰えるように、これまで得た知見を共有します。
目標設定など計画段階の話から、自社フレームワーク実装まで、開発フローを回すための全体像を話す予定です。

■ 構成
- なぜデータ・ドリブンな意思決定が重要か
- アプリの成長におけるKPI設定について
- 弊社アプリでの具体的な業務フロー
- 使用しているフレームワーク・ツール
- その他工夫している点
など
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutesSeiji Kasahara
76
2016/10/29 20:56:22Androidエンジニアでもリモートワークがしたい!- 対象者
リモートワークでの働き方を検討している企業やAndroidエンジニア
また、災害時や緊急対応等の一時的なリモート環境を構築したい方

- 概要
近年リモートワークという働き方が日本でも広まってきていますが、Android開発の場合、
どのようにテストを行うのか、端末の管理はどうするのか等様々な制約があり、なかなかリモートワークをしたくても出来ないという方が多いと思います。
そこで実際に業務としてAndroid開発をリモートワークで行った際の、問題点やナレッジを話したいと思います。


- 内容案
* リモートワークについて
* リモートワークの利点
* Android開発のリモートワークとWeb系開発のリモートワークの差異
* Android開発におけるリモートワークの問題点
* リソースや成果物の共有方法
* 問題点の解決方法、及び解決方法選択に至った理由
* 導入したツール
* Andoridエンジニアとしてリモートワークを行ってみての感想、及び所感
開発環境・ツール (Productivity and Tooling)30分 / 30 minutesendoidou
77
2016/10/30 16:44:35Kotlin 1.1 async/await and RxJavaKotlin 1.1で追加される言語機能は沢山ありますが、その中でも特に大きなものがコルーチンの実装として追加されるasync/awaitとジェネレータです。

Kotlin 1.1ではコンパイラへコルーチンのための予約語が追加されます。async/awaitとジェネレータの実装はライブラリで提供されます。

本セッションでは、コルーチンの概要、Kotlin 1.1でのasync/awaitとジェネレータの仕組みについて解説し、Androidアプリケーションでどのように利用すると良いかを紹介します。またasync/awaitとRxJavaの関わりについても説明します。

目次案
- Kotlinとはなにか
- Kotlin 1.0.xと1.1の差分について
- コルーチンとはなにか
- Kotlin 1.1におけるコルーチン実装の仕組み
- ジェネレータの実装の概要と実例
- async/awaitライブラリの実装の概要
- asyncRxを読み解く
- AndroidアプリケーションでのasyncRxの適用
- RxJavaとasyncRxの協調と設計 (Operatorを置き換えよう)
- おまけ: coroutineとsuspendを使った継続の実装
開発環境・ツール (Productivity and Tooling)30分 / 30 minutessys1yagi
78
2016/10/30 17:03:46解剖 Kotlin ~バイトコードを読み解く~Kotlinの特徴的な機能としてnull許容型や関数型や拡張関数などがよく取り沙汰されます。null安全だとか高階関数で簡潔に記述だとか拡張関数便利最高といった話は枚挙に暇がありません。確かに言語機能としていろいろとJavaに比べて便利なのは分かるんだけど、でもまぁ別にJavaを使っていてクリティカルに困っているわけではないしな〜学習コストとかチームへの導入コストを考えるとそこまで旨味を感じられるわけでもないしな〜みたいなそんな気分。わかります。

本セッションではKotlinのコードをコンパイルして得られるJavaバイトコードを、可読化したりデコンパイルする事によって、Kotlinの特徴的な言語機能がJavaでどのように表現されているかを読み解いていきます。これによりKotlinが肩代わりしてくれるボイラープレートコード群を明らかにします。Kotlinを使うことで省略できたボイラープレートコードが可読性をどのように高め、設計に影響を与えるのかについても言及します。

目次案
- Kotlinの概要
- 本セッションのアプローチ
- null許容型の正体
- 関数型とラムダ式の正体
- インライン関数の正体
- 拡張関数の正体
- データクラスの正体
- プロパティの正体
- デリゲートプロパティの正体
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutessys1yagi
79
2016/10/30 17:25:13インスペクションとAndroid Lint Custome Ruleによる、単一責任実装の実践■対象者
初級者〜中級者
・メソッドが複雑にならないよう実践したい方
・Android Lint の Custom Rule と静的コード解析について理解したい方

■概要
TDDやDDDが喧しい昨今、コード実装の「単一責任の原則(SRP)」意訳⇒シンプル化が求められています。

Android Studio には、インスペクションという強力なソース解析(指摘)機能があることをご存知と思います。
問題点のある実装部をエディタ上でハイライト表示したり、「Analyze」メニューの"Inspect Code..."により、指摘一覧を「Inspectionツールウィンドウ」でカテゴリ別にリストアップもしてくれます。
独自の単一責任チェックのインスペクションが欲しいと思われていませんか。

実は、Android Studio のインスペクションには、Android Lint も利用されているのです。

Android Lint は、独自の Custom Rule を作ることができます。
そして Custom Rule を作るためにAST(抽象構文木)を使ったJavaソースコードの静的解析機能も提供されています。
この静的解析機能を利用した、単一責任となるシンプルな実装パターンを強制するオリジナルの Android Lint Custome Rule の
作成(方法)を中心にお話を進め、Android Studio での単一責任実装の実践(利用方法)について発表したいと思います。
開発環境・ツール (Productivity and Tooling)30分 / 30 minutesrobo
80
2016/10/30 18:22:15minneにおけるテスト〜リリース〜リリース後にやっている事の紹介■対象者
初級〜中級者
テストやリリース周りの仕組を整備していきたいと考えている人
リリース後のクラッシュ対応、レビュー対応について検討している人


■概要
僕が所属しているminneではAndroidチーム3人で開発しています。
複数人数で安定的にアプリをリリースしていく為には、テスト〜リリースまでの仕組を整える事が必要になってきます。
また、レビューの良い評価を維持していくために、レビューの対応についても実際にやってきた事を含めながらお話していきます。

具体的には、以下の内容を発表します。

- リリースフローにテストをどう組み込んでいるか。
- テストの種類
- 自動的テスト
- Unit test
- UI test
- CI
- 手動テスト
- 手作業による検証
- 構築しているCI環境の仕組紹介
- Drone.io
- DeviceFarm
- Slack
- リリース前の検証について
- リリース担当
- 検証シート作成
- DeployGate
- リリース
- 段階的公開
- Crashlytics
- リリース後
- クラッシュ監視
- レビューの監視
- レビュー返信の体制
メンテナンス (Quality and Sustainability)30分 / 30 minutesmapyo
81
2016/10/30 21:33:52Androidアプリ開発の体力づくり💪■対象者
Android開発をまだやったことない or はじめたばかりの人
Android開発の今を知りたい人
Android開発 やっていくぞ💪 という気持ちの人

■概要
Android開発の現状は日々変化し続けています。
OS、デザイン、開発ツール、ライブラリ、テスト、設計など日々小さくても様々な変更があり、色んな情報が飛び交います。
「Android開発難しそう」と感じたり、「やってみたけど何から始めたらいいのかわからない」みたいな経験をした方もいるかと思います。
しかし、大事なポイントを少しずつ抑えていくことによって、Androidを継続的に学べるようになります。

本セッションでは、私が過去・現在経験してきたことも交えながら、Android開発をやっていく上で大事なポイントをお話したいと思います。
まず、Android開発を始めるにあたり、何からはじめたらいいのか、継続的に学ぶために何をしたらいいのかなどを話します。
次に、実際にアプリを開発することを想定して、どのようなAndroidの技術が必要なのかなどを話します。
最後に、Android開発の現状や新しい情報をどのようにキャッチアップしていくかなどを話します。
※話す内容が幅広いジャンルを扱う可能性があるため、具体的な実装やコードは少なめになる予定です

内容案:
* どのようにAndroidを学ぶのか
* 作るアプリによってどのようなAndroidの技術が必要なのか
* 新しい情報をどのようにキャッチアップしていくかな
* 開発に役に立つ情報はどこで手に入れるか
* Android開発の今とこれから
その他 (Other)初心者向け・入門50分 / 50 minutesoperandoOS
82
2016/10/30 22:13:33ワンソース・複数アプリの実際Quipper社では、グローバル向けの Quipperアプリと日本国内向けの StudySapuriアプリの両方を一つのソースからビルドしています。
一つのソースにしておくことには、メンテが楽だという明確な利点がある一方、
異なるプロダクトの要求をどうまとめるという問題があります。
そこについて、開発時のノウハウ及び、ビジネス要求側まで遡ってどうやって対処していったかをはなしたいと思います。

- 内容案
-- そもそもワンソースでできるプロダクトとは
-- ビジネス側の理解
-- 開発者の意識
-- BuildFlavor
-- ブランチ戦略
-- FeatureFlag
-- リソースの管理
-- 無駄なライブラリの削減
-- リリースと開発の同居
-- CI環境
メンテナンス (Quality and Sustainability)30分 / 30 minutesdagezi
83
2016/10/30 22:54:06Systemアプリ開発入門■対象者
SystemアプリおよびAndroid Frameworkの開発者
初級〜中級向け

■概要
Systemアプリ開発入門
一般的なアプリと同じく、端末にプリインストールされるアプリについても
OSのアップデートと共にセキュリティ観点のアップデートが多く含まれてます。
プリインなら何が可能なのか、何が不可能なのか、一般的なアプリと違いどんなことに
気を付けて開発をしなければいけないのか。その開発手法についてのノウハウをお話しします。

- Systemアプリ開発入門
- Systemアプリ概要
- 一般的なアプリとの違い、権限の違い
- 権限とSystemアプリ
- HideAPI,SELinux,Platform署名
- Device Owner
- Nugarでどう変わった?
- マルチユーザーとPlatformアプリ
- マルチユーザに対応するために
- ユーザ間で共有したい情報を保持するために
- Debug手法
- Using AndroidStudio
- BreakPoint
- Test
- (おまけ)Systemアプリ開発でもいろいろしたい
- 著名Library使用(APT)などなど

■キーワード
プリインアプリ、Platform署名、Framework、SELinux、RuntimePermission、CTS、マルチユーザー
プラットフォーム (Platform)30分 / 30 minuteskobashin
84
2016/10/31 2:33:56Intro to Static Analysis: Your Dream Side-Job Is HereA Bug bounty Program, a crowdsource based rewarding program for discovering a software bugs, is now get familiar in many industry. Offering $8,000 at max, Google, of course encourages the program so does Line. Even United Airlines is conducting it.

I personally believe us, Android developers have a great advantage in term of Android App Bug Bounty Program. After all we develop the app on daily basis.
But HOW should we TEST apps developed by others? STATISTIC ANALYSIS is one way to go.

In this session I will discuss,
Process of Bug Finding(in theory)
Static Analysis Methodology
Static Analysis Tools
Demo
List of available Bug Bounty

In the end, I hope listeners find a good entry point for side-job, and ultimately, Android developers can complement each other app to make all secure and safe.
メンテナンス (Quality and Sustainability)30分 / 30 minutesKengo Suzuki
85
2016/10/31 5:52:36今更聞けないGradle突然ですがあなたのbuild.gradle、ちゃんと他人に説明できますか? いつの間にかコピペの山になっていませんか?

本セッションでは、Android開発を始めて比較的日が浅い方を対象にGradleの基本的な要素からすぐ実践できるtips、pluginの作成方法や発展的な内容をサンプルコードと共にご紹介します。
ビルド周りは普段中々時間を割くことのできない分野だと思いますが、更なる生産性向上の為にこのセッションがお役に立てば幸いです。

対象者:
* Android開発初級者〜中級者

コンテンツ(仮):
* Gradleについて(5min)
* Gradleとは
* Android Gradle Pluginとは/Android Studioとの連携
* Android開発における基本的な設定項目
* Tips紹介(20min)
* Build variantsの活用
* Build typeとProduct Flavors
* Merging resources, Java sources, manifests
* Flavor Dimensions
* Custom tasks
* Custom taskの作成
* ビルドプロセスへの組み込み、除外
* sourceSetsを活用した効率的なtaskの記述
* Testing
* Testing support libraryを利用したUnit testの記述
* Espressoを利用したinstrumentation testの記述
* test reportやJacocoを利用したカバレッジの取得
* Performance
* Daemonや並列化、JVMパラメータを利用した高速化
* dexOptionを利用した最適化
* CircleCIやJenkins上でビルドを速くする工夫
* Gradle plugin(10min)
* Gradle pluginの作成
* 内部アーキテクチャの簡単な紹介
* pluginの作成方法
* jcenterへの公開作業
* 開発を効率化するおすすめpluginの紹介
* 発展編(5min)
* Kotlin gradle pluginの可能性
* BabelやBack,Kobaltとの比較
* Q&A(5min)
開発環境・ツール (Productivity and Tooling)50分 / 50 minuteshotchemi
86
2016/10/31 7:49:30Optimizing & Profiling UI PerformancePerformance matters if you want to be able to provide buttery smooth, exceptional user experiences. However, it can sometimes be difficult to track down and fix these issues. In this talk you'll learn what causes jank (skipped frames) to occur while animating such as scrolling, tips on how to avoid it in the first place, and how to profile for problem areas if it does happen to you.

You’ll learn how to use tools such as Hierarchy Viewer, Debug GPU Overdraw, Systrace, new in Android 7.0 Frame Metrics API, and others.
開発環境・ツール (Productivity and Tooling)50分 / 50 minutesBrenda Cook (kenodoggy)
87
2016/10/31 8:16:39What's New in RxJava 2.0いま RxJava 1.0 を使っている方を対象に、RxJava 2.0 の変更の背景や RxJava 2.0 での変更点、どのようなことに注意するべきかを説明します。

RxJava 2.0 は 2016 年の 10/29 に公開された、RxJava の新しいメジャーバージョンです。1.0 に比較すると以下のような変更が入っています。
- Java 9 で標準となる予定の Reactive Streams 対応
- 分かりにくかったメソッド名やクラス名の変更
- いくつかの API の挙動の破壊的な変更

RxJava 2.0 では、RxJava 1.0 で実現できたことは、ほとんどそのまま実現できます。一方で、RxJava 2.0 なりの書き方をすることで、より Rx や Reactive Streams の恩恵に与れるようになっています。本セッションでは、RxJava 1.0 でいま Android アプリを書いている方向けに、2.0 での変更点やどのように 2.0 の機能を利用するのが良いかという話を述べます。特に 2.0 での変更の背景となった Reactive Streams がどういうものかというところから解説することで 2.0 の目指す姿を明らかにしたいと考えています。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minuteshydrakecat
88
2016/10/31 8:57:52少し幸せになる技術[対象者]
初心者〜中級者向け

[内容]
Androidを開発、運用していく中で起こるつまづきやすい問題の解決、
ちょっとしたことで開発が幸せになるテクニックを紹介。
本質的な作業に集中できる時間を多く取れるようにしたいと思っています。

以下は仮予定の内容です。
問題
- ProGuard問題
- なぜProGuardで、ビルドができなくなるのか
- メソッド数64k問題
- 64k問題とは
- メソッド数を知る
- メソッド数を削減
- 限界突破の方法
便利
- Android Studio2.2の機能
- リファクタリングで役立つショートカット
- Google Play Console関連
- 通知を受け取る
- クラッシュレポートの難読の解除
- Gradeの設定
- キャッシュ周り
- 署名の設定
開発環境・ツール (Productivity and Tooling)30分 / 30 minuteskamedon
89
2016/10/31 9:23:15A New View: Layout Editor + ConstraintLayoutThe new ConstraintLayout is not just a new component but a new method of building UI in Android. Coupled with the new and improved layout tools in Android Studio, the ConstraintLayout looks to provide developers with flexibility, adaptability, and efficiency, both in the layouts themselves and in the development process.

This session will explore these new tools for building complex and efficient layouts. First, we will take a quick look at the history of the ConstraintLayout. We will then discuss why the Layout Editor complements building UIs with the ConstraintLayout and go through several examples of how to utilize both the Layout Editor’s tools and the ConstraintLayout’s features.
UI・デザイン (UI and Design)50分 / 50 minutesHuyen Tue Dao
90
2016/10/31 9:24:15From Java to Kotlin in productionThere are many talks about what Kotlin is, why you should use it and how to get started. If you know those things, this talk is for you.

I am going to cover how we use Kotlin in a real-world large code base. How we converted from a pure Java App over to an (almost) pure Kotlin one.

Along the way I will cover pain points. Where did it blow up? Where did we mess up? What bad practices did we make? How do we keep builds fast? Why kapt 2 saved us and more!

Beyond the issues, we will also cover the more advanced parts of the language which lets us do things which were previously more difficult in Java. E.g. Pure Kotlin DI, Sealed Class State Machines, Fluid testing and more.
開発環境・ツール (Productivity and Tooling)50分 / 50 minuteschrisjenx
91
2016/10/31 9:31:52実際、Wear2.0って、どうなの??Android Wear2.0では、スタンドアローンやキーボードなど、多くの機能が追加されています。
Wearアプリを1系の時に作成し、2016年3月から運用しております。
現在、2.0に対応させるために、実装と検証をしています。
「運用してみてどうだったか」や「2系に対応させたときの気づき」などを入れつつ、Wear2.0について話せれたら良いと思っています。
また、iOSとの連携を試したことも話せれたらと思います。(実装は、今のところ見送ってます)

対象
Andoid Wearに興味がある人

内容案
- Wear2.0で新しく追加された機能紹介(1系と2系の違いも踏まえながら...)
- 2.0で追加されたUI(キーボードなど)を使用する際に注意したことと、導入を見送ったこと
- iOS連携を試そうとした結果
- 約1年くらいWearアプリを運用してみて思ったこと
- Wearアプリを作る時に注意した方がいいところ
ハードウェア (Hardware)30分 / 30 minutesKohei Niimi
92
2016/10/31 9:37:08LayoutInflater - friend or foe?When building Calligraphy (https://github/chrisjenx/Calligraphy) it uncovered some interesting aspects of the LayoutInflater and some unknown side effects.

Calligraphy could be described as a partial "hack" - I think it's important to show to how this works and although a "hack", it's been done with safety in mind.

I will cover how the LayoutInflater works - being one of the most important parts of the Android framework, Android Developers should understand what goes on under behind their Layouts.

Secondary let's look at how Calligraphy hacks the lifecycle to allow you to it to inject into views at inflation time and then how you can roll your own version of Calligraphy!
プラットフォーム (Platform)30分 / 30 minuteschrisjenx
93
2016/10/31 13:27:37初心者向けライブコーディング人がコードを書いているのを見るのはとても勉強になります。
知らなかった書き方だけでなく、Android StudioのショートカットやCVSとの連携の仕方、ビルドのタイミングなど、細かい部分の発見が多いです。

そこで、私自身がコードを書く時に何を考え、どういう風に作っているのかをライブコーディングでお見せしようと思います。初心者向けで考えていますが、ある程度慣れた方が見ても何個かは新しい発見があると思います。

以下の内容に触れる予定です。

- Android Studioでプロジェクトを作る
- Newコマンドを使いこなす
- プロジェクトテンプレートを作る
- ファイルテンプレートを作る
- リネーム、リファクタリングなどの操作系ショートカット
- ファイル・エディタ移動、検索などの移動系ショートカット
- レイアウトエディタの使い方
- ビルド時間を無駄にしない開発方法
開発環境・ツール (Productivity and Tooling)50分 / 50 minuteskonifar
94
2016/10/31 14:24:07How to search and improve performance▼対象者
初心者〜中級者

▼概要
Androidアプリ開発で避けて通れないパフォーマンス改善ですが、細かいtipsなどの話がされがちです。どこから手をつけていいのか、どうやって調査していくのかのノウハウはあまり多く語られていません。

本セッションでは実際のオープンソースのアプリ(Android N Easter Egg Neko) を題材に、パフォーマンスが悪化した際に「どのように調査するか (Android Studioなどのツール使い方)」から「実際のコード改善」までの一連の流れをお話しします。皆さんが自分のプロダクトで実際にパフォーマンス改善できるようになる知見を共有するのがゴールです。
また、初心者でも手をつけやすいよう、普段から開発者が慣れ親しんでいるAndroid Studioやadbのツールを取り上げたいと思います。

▼取り上げる予定のツール
・adb systrace
・Android Device Monitor
メンテナンス (Quality and Sustainability)30分 / 30 minutesFukui Atsuko
95
2016/11/01 23:59:00Android Wear 2.0 のアプリ開発Google I/O 2016にてAndroid Wear 2.0が発表されました。これはAndroid Wearが発表されてから初の大幅アップデートです。スタンドアロンで動作するようになり作れるアプリの幅が広がり、Android Wear のマテリアルデザインが公開されるなど、Android Wearはさらに面白いものになってきています。
本セッションでは、Android Wear初期から個人でAndroid Wearアプリを開発してリリースした知見、Android Wear 2.0 のアプリの作り方をお話します。

- Support Wearable LibraryのView解説
- Ambientモード、画面の形状対応
- Android Wearアプリのデザインについて
- Android Wearアプリ開発Tips
など
ハードウェア (Hardware)30分 / 30 minutesteshi04
96
2016/10/31 15:20:36テスト0から目指すクラッシュフリー率99%「なんで、テストカバレッジ0の私がクラッシュフリー率99%台に!?」
様々な現場でAndroid開発をしていると、テストコード皆無のプロジェクトに遭遇することもあるだろう。
テストコードがないと大胆な変更をリリースするのに勇気がいる。勇気がいるからリリースが怖くなる。リリースが怖いから変更が溜まっていく…の悪循環だ。テストコードはあった方がいい。そんなことは分かっている。それでもないものはない。

本セッションではスピーカーの経験から、次のような内容を扱う
・テストコードゼロの現場では何から始めるか
・クラッシュフリー率を上げるには何が効果的か
・テストを書かない現場にどうやって文化を根付かせるか

対象は特にAndroid開発を始めたばかりの初心者や、テストコードがなくて苦しんでいる現場のプログラマを想定している。
メンテナンス (Quality and Sustainability)30分 / 30 minutes@fushiroyama
97
2016/10/31 15:26:22実践アニメーション## 対象者
- 初級〜中級者
- アニメーションに苦手意識がある人

## 概要
AndroidでViewに対するアニメーションを実装する方法は様々ですが、基本は諸々のサイトで解説されています。
しかし、その多くは拡縮や移動またはそれらの組み合わせといったシンプルな実装の紹介に留められており、複雑なアニメーションを実現する際の知見はあまり見られません。
複数の要素が相対的に異なる動作をするViewなど、実践的なアニメーションをどのように実現するのか……。
本セッションではアニメーション実装へのアプローチや手法などを具体的に紹介することで、今まで何となくアニメーションにネガティブなイメージを持っていた方々に苦手意識をなくしてほしいと思っています。
UI・デザイン (UI and Design)30分 / 30 minutesNaoya Yunoue
98
2016/10/31 15:59:55Viewを動的に変化させるアプローチ## 対象者
アプリのViewにユーザーの操作に追従する動きを入れたい人

## 概要
HoloやMaterialデザインが発表されて以降、Viewを動的に変化させることが多くなりました。Viewを動的に変化させるといっても単にアニメーションで動かすだけでなく、最近ではスクロールのようなユーザーの操作に追従して変化させるケースも増えてきています。
単一のViewを変化させるだけならばViewクラスのsetTranslationXメソッドやsetScaleXメソッドなどを使用すれば可能です。しかし、レイアウト全体を変化させたい場合、Javaのコードだけで行おうとするとかなりの量の可読性の悪いコードを書かなくてはなりません。更に、その際にAndroidフレームワークの邪魔になる書き方をしてしまうとレイアウトが崩壊する危険性があるため、そうならないように注意して実装する必要もあります。
本発表ではそれらの課題について、どのようにすればユーザーの操作に追従したViewの変化を実現しつつ、可読性を保ったコードが実装できるかについてのアプローチをお話いたします。

## 発表の構成
- レイアウトXMLの考え方
- Javaからコードを割り込ませる方法
- DataBindingを使う理由

## 関連するキーワード
- レイアウトxml
- DataBinding
UI・デザイン (UI and Design)30分 / 30 minutesTakao Sumitomo
99
2016/10/31 16:20:45大規模アプリのリノベーション「はてなブックマーク」の Android 版アプリは、2011年にリリースして以降、大きな変更を行うこと無く新機能のリリースや、不具合の修正を続けてきました。しかし初回リリースから5年が経過した今、アプリの規模は非常に大きくなり、相応にコードの複雑性も増し、コード改善の必要性を感じるようになりました。

しかし長年積み上げられてきたコードの複雑性を解消するためには、小手先のコード改善ではもはや大きな効果はありません。根本からの見直しが必要です。アプリのアーキテクチャを見直し、旧コードをすべて新たにし、モダンにして行かなければなりません。これはもはやリファクタリングではなく、リノベーションと呼べる非常に壮大なものです。

リノベーションにあたり、まず初めに取り組んだのが「画面の確認」でした。どの画面がどこから来ているのか。この画面にはどのような機能があるのか。この画面のデザインの意図は何か。ある画面とある画面の共通の View はなにか。叩いている API は何なのか。そのモデルクラスは何か。すべてを一つずつ再確認し、機能を整理し、新たな名前をつけ、それらをドキュメントに落とし込んでいきました。

次に取り組んだのは新たな設計の考案でした。まずはライブラリの選定を進めました。近年の Android 開発では有用なライブラリが数多く存在します。例えば Rxjava、Realm、DataBinding があります。これらは開発に大きなメリットをもたらしますが、これらのライブラリには設計を大幅に左右する特性があります。Rxjava を採用すればリアクティブプログラミングがアプリ中に適用されたものになりますし、Realm を採用すれば、Realm で引いたデータを常に監視する設計が考えられます。また DataBinding を利用する場合、自然と MVVM にたどり着くことになります。

つまりライブラリを選ぶということは、同時に設計の形も選ばないといけないのです。そのためにアーキテクチャの選定もほぼ同時期に行うことになりました。世の中には様々なアーキテクチャがありますが、どれを選択すべきなのかは非常に難しいものでした。アーキテクチャをそのまま当てはめようとしても、どうしても Android フレームワークや、アプリの機能、ライブラリの特性にそのままでは合致しないケースがあり、ただアーキテクチャをそのまま選択すればよいというものではありませんでした。

設計の難しさは、これらの組み合わせにあります。Android のフレームワーク、様々なライブラリ、そして提言されているアーキテクチャ。これらを組み合わせ、ベストな設計を作り出さなければならないのです。勿論その設計は変更に強く、メンテンスがし易いものでなければなりません。加えて、我々のアプリでは「5年先も機能を拡張し続けることの出来るアプリ」を目指すという目標があります。

今回のリノベーションでは、アーキテクチャをそのまま利用するのではなく「アーキテクチャの良いところを可能な限り利用するとともに、どうしても実態にそぐわないアーキテクチャの定義は、少しアレンジする」という手法で、設計に落とし込むことになりました。そしてこの設計もすべてドキュメント化し、今後の開発方針がぶれないように徹底しました。

本セッションでは、大きなアプリケーションを作り変えるために行った手法について話します。また、Android のフレームワークと適合したアーキテクチャを模索した結果、導き出した設計についても話したいと思います。
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutes北村 涼
100
2016/10/31 17:18:354年続くアプリにおけるチーム開発■対象者
初心者〜中級者。
最近Androidアプリ開発を初めた人やチームで開発を初めた人。

■内容
フリマアプリ「フリル」は今年で4周年を迎えました。
その中でも何度か大きなリニューアルを実施してきました。

コードベースも必然と大きくなり、複数人で大規模アプリのメンテナンスをし続けながら、機能追加などをしてきました。

このセッションでは4年間の中で、チーム開発がどのように変化してきたのか、
どういったことをやってきたのかをお話します。

・開発フロー
・開発環境
・コードレビュー
・プルリクエスト
・CIの変遷
・社内ユーザーインタビュー
・QAのやり方
・リリース
・数値計測
・リニューアル
・レビューマネジメント
設計・開発手法 (Architecture and Development Process/Methodology)30分 / 30 minutescutmail
Loading...
 
 
 
シート1