DroidKaigi 2016 応募されたトーク一覧(閲覧専用)
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

 
View only
 
 
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
TimestampTitleAbstractTopicTopic (Other)Talk durationPrinted Name
2
2015/11/04 10:39:36Advanced Kotlin for Android■概要

今、世界中から注目を集めているプログラミング言語Kotlin(コトリン)によるAndroid開発について話します。
Kotlinは静的型付けオブジェクト指向言語で、JetBrains社により開発されており、Javaプログラマには馴染みやすい文法が特徴的です。
前回のDroidKaigiでは簡単な紹介でしたが、今回は一歩進んだ内容で、Android Kotlinユーザのレベルアップに貢献します。
ver0.xが長らく続いていましたが、現在ver1.0-Beta、年内には1.0安定版がリリースされるとの噂で今が一番ホットです!

Android specific:
KotlinはAndroidだけでなくJava仮想マシンもターゲットに含みます。
しかしいわゆるAndroid Javaが抱える問題をKotlinは華麗に解決してくれます。

Expertise:
Kotlinはまだメジャーな技術とは言えず情報が少ない上に、進歩・変化が早いです。
日本語でエバンジェリスト(自称)が発表します。

Innovation:
大きな革新性があると言うと大げさになってしまいそうです。
Kotlinで記述されたアプリだからどうこうという話はありませんが、
Javaと比較し生産性、保守性、安全性の観点で有利なので、
余った時間でUIや機能に注力したり、家族や友人と過ごすこともできます。

■対象者
・Android中級者〜
・Kotlin初心者〜

初歩的なKotlinの説明はほとんどしません(文末にセミコロンは不要です!など)。
ですが発表資料は公開し、ブログで解説するなど極力フォローしていく予定です。

■目次案
1. Kotlin概要
・Kotlinとは
・ざっと背景や文法などをおさらい

2. Tips集
・Android開発で直面しやすい問題をKotlinで解決する
・併せて関連するKotlinの言語機能を紹介

3. ライブラリなど
・Dagger2やRealm、RxAndroidと言ったフレームワーク、ツールをKotlinからうまく使う方法
・KotterKnife, AnkoなどのAndroid Kotlin専用のライブラリ

■登壇者について
・Kotlin歴3年半〜
・Kotlinエバンジェリスト(自称)
・日本Kotlinユーザグループ代表
・講演実績多数(JJUG CCCやDroidKaigiなどなど)
・執筆実績: 日経ソフトウエア読切、SoftwareDesign連載、同人誌など
開発環境・ツール(Productivity and Tooling)50分長澤 太郎
3
2015/11/04 13:02:02史上最速のAndroid[概要]
Androidアプリケーションを高速化するためのバッドノウハウ(知らなくていいこと)の紹介します。
Javaコード、Dalvikバイトコード、機械語、仮想マシン間を往来することで、「Javaコードで」最速のアプリケーションを開発するにはどうするればよいか?を話します。
※JNIの話はしません

[対象者]
Android開発に飽きてきた廃人開発者

[何が新しいか?]
そもそもDalvikバイトコードの話すら言及されることは殆ど無いのですが、
今回はそこでは収まらず、ARTの最深部まできっちり説明し切ります!

[内容の概要]
1) ARTの仕組み
2) インタープリタ、JITコンパイラ、AOTコンパイラ
- それぞれの実行環境はどういうケースで使用されるか?
3) Dalvikバイトコード
- バイトコードの概要と、速い命令、遅い命令
- 遅い命令はどういうコードで生成されるか?
4) 仮想マシンへのダイブ
- JavaバイトコードからDalvikバイトコードへ
- DalvikバイトコードからAOTコードへ
- AOTコードから仮想マシンへ
- コード上からの不可視なオーべーヘッドを突き止める
5) 高速化ノウハウ集
- こんなコードは意味が無い!
- 実はこんなコードが速い!
プラットフォーム(Platform)50分kmt-t
4
2015/11/04 14:39:31Getting Started with the Android Data Binding LibraryThe Data Binding Library was introduced at Google I/O 2015 and is backwards compatible to version 2.1 (API level 7+). It has the potential to be a powerful tool that not only reduces ugly boilerplate code, but also influences the way we architect our applications. This session will cover the benefits of Android Data Binding, what data binding is, how it works, and how to implement it.Productivity and Tooling30 minutesBrenda Cook
5
2015/11/04 14:43:07Fragments: Why, How, and What For?This talk will cover how Fragments work in detail by comparing and contrasting them to something we know well, Activities. In it, I will also cover examples and use cases. Fragments: Why, How, and What For? is targeted toward developers who may not have had a lot of experience using Fragments, and those who want to understand them better.

Why? - Why did Google introduce Fragments? Aren’t Activities enough?
How? - How do Fragments work?
What For? - Example and use cases highlighting Fragment reuse, single pane vs multi-pane, ViewPager, NavigationDrawer and DialogFragment.
Platform50 minutesBrenda Cook
6
2015/11/04 16:20:58System Services in Nutshell概要:普段Androidアプリケーションを開発している方は主にAndroidフレームワークスタックの「アプリケーション」レイヤを触っていることになる。興味本位でAndroidフレームワークのソースを追いかけて行ったことのある人は、ある層から突如「HogeSerivce」「FugaManager」というような謎のクラス群にぶち当たり、単純なIDEの参照ジャンプだけでは正体を辿れなくなるはずだ。
これらはフレームワークスタックの「アプリケーションフレームワーク」層、とりわけその中の「サービスフレームワーク」に相当する。これらはさらに「ネイティブサービスフレームワーク」と「Javaサービスフレームワーク」に分かれ、JNIを介して相互作用する。このサービスフレームワークはさらに「サービス層」「RPC層」「IPC層」に分かれて互いに決められた作法で動作する。
サービスフレームワークは以上のように複雑な構成をしているが、厳密な規則に則ったコンポーネント分けがされているため、読み解き方が分かってしまえば他の部分にも応用が効く。
本セッションではこのサービスフレームワークにフォーカスし、より深い位置からのAndroidフレームワークへの理解を目指す。

対象者:アプリ自体の開発は難なくこなし、よりAndroidの深淵に迫りたいAndroider
その他(Others)Android Framework50分白山 文彦
7
2015/11/05 7:59:50Advanced techniques for concurrency & memory managementManaging memory & concurrency are one of the biggest challenges we face when it comes to writing testable & efficient apps.
Based on the experience of building Realm database, We'll dig into some patterns & tricks used to control memory footprint & multithreading.

Some of the topics this talks will cover are:

- How to use the Java Reference API (WeakReference & ReferenceQueue) to work with the GC

- Writing tests involving the GC

- Working & testing code using the Handler/Looper api

- Alternative asynchronous models (Messenger/ResultReceiver)

- Threadpool customisation & pitfalls

- Handler (mocking & testing, using IdleHandler)
プラットフォーム(Platform)50分Nabil Hachicha
8
2015/11/10 11:51:44Android CI: 2016 edition対象者:
Android のテストに興味がある開発中級者

概要:
Android は OS だけでなく、Android アプリのテストについても毎年状況が変化しています。
一昔前は作成したアプリのテストと言えば、実機を持ち出してインストールし、操作することを指していました。あるいは、InstrumentationTestCase, uiautomator, Robotium のような自動化ツールを試し、テストスクリプトを書いてみたかもしれません。
しかしその方法では、アプリそのものが複雑化・大規模化し、なおかつ高速な開発が求められる状況に対応するのは難しいでしょう。この難しさが顕著に現れるのはテストコードの保守であり、定期的にテストを実行しないとテストコードが実装と乖離してしまい、メンテナンスの煩雑さがテストの浸透を妨げてきました。
テストを常に最新の状態に保つには、開発チームの文化づくりもさることながら、最新のアプリとテストの間に乖離が発生した際に警告を発する仕組みが必要不可欠です。この仕組みこそ CI (Continuous Integration) と呼ばれるものですが、これまで Android の CI は様々な技術的制約がボトルネックとなり、全面的な CI を実現するには複雑な設定や、最初からテスト・CI を見越した設計が求められていました。
その状況が Gradle Android Plugin のバージョンアップや、各種テストツールの進化によって変わりつつあります。既存のアプリでも始められて、小規模なテストからスタートできる環境が整ってきています。
そこで Android のテストについて、全体像や関連ワードをレイヤーで分類してわかりやすく概観したのちに、各レイヤーにおけるテスト設計と最新の CI の実現方法を、実例を交えて説明します。
メンテナンス (Quality and Sustainability)30分Yusuke Yagyu
9
2015/11/10 14:09:29Firebase in ActionFirebase is the NoSQL cloud database where data sync in real-time.
Not only the real-time communication feature, Firebase powers your app with storing data, authenticating with 3rd party services like Twitter, Facebook, and it also frees you from the hassle of handling connection lost.

This session covers:

- How to make real-time communication app with Firebase
- How to authenticate your app
- How to design your data efficient in Firebase
- Tips & FAQ

(English session)
Android の最新動向 (Trends in Android technology)50分
Fumihiko Shiroyama (@fushiroyama)
10
2015/11/10 20:33:40Master of Canvas対象者:
Canvasを用いたAnimationに興味がある開発中級者

概要:
CanvasでPathを使ったリッチなAnimationを実装する方法の解説、またIllustratorを使い簡単にデザインをCanvasで実装する方法について話します。

Pathを使ったAnimationではInterpolatiorのカスタマイズ、数式の作り方、TypeEvaluatorのカスタム方法など詳しく解説していきます。
PathではAPI19からPath#opなど便利なメソッドも追加されるなどしており、表現の幅が広がっています。
Material対応の先にある小さいViewの細かい話をします。

Illustratorで作ったデザインのAnimation変化の簡単に行える実装とその際に使用する自作したスクリプトの解説をします。

主に以下のViewを解説しながら行っていきます。
TextMorphingView : https://twitter.com/amyu_san/status/654555982958166016
WaveSwipeRefreshLayout : https://github.com/recruit-lifestyle/WaveSwipeRefreshLayout
BeerSwipeRefreshLayout : https://github.com/recruit-lifestyle/BeerSwipeRefresh
ColoringLoading : https://github.com/recruit-lifestyle/ColoringLoading
UI・デザイン (UI and Design)30分
Yuki Mima (@amyu_san)
11
2015/11/13 8:27:13Automated Testing on Android using AppiumWith the Android Ecosystem maturing, Continuous Integration and Testing is a growing priority.

Jonah Stiennon is a core contributor of Appium, the Open Source Test Automation Framework. Automate tests using any language, for native apps, hybrid apps, and mobile browsers: github.com/appium/appium.

Appium is about to complete a brand new implementation of its Android backend using UIAutomator 2.0.

Learn:
- How to set up appium for Android testing
- How to write Appium tests in Java
- How to use the Page Object system for tests
- Best-practices for writing tests.

I will also demonstrate running tests on the Sauce Labs real device cloud.
Productivity and Tooling50 minutesJonah Stiennon
12
2015/11/13 9:43:35Android Dev Tools Knowledge対象者:
Android開発をする上で便利なツールやコマンド、ライブラリを知りたい人
・ 初心者でも使えるもの多め
・ 一部、動きを理解する上で前提知識が必要なものがあるかもしれませんが使う上では初心者でもOK
・ ツールを使ってガシガシ開発効率上げたい中級者〜にもオススメ

概要:
近年、Android StudioやGradleの登場によって、標準の開発環境が日々向上しています。
Android開発を効率的に行う上で欠かせないデベロッパーツールもたくさんあります。

そんな開発の役立つデベロッパーツール、コマンド、ライブラリなどのナレッジを余すことなくご紹介したいと思います。
実際にツール等を使いながら紹介する部分も用意します。(ワークショップ的に自分の手元で動かしたい人向けにも簡単なもの)
Android SutdioやPluginだけでは物足りない!という方向けに、より深くAndroidを理解する上で役に立つものもご紹介します。
これらを知ることで、今まで以上に開発効率の向上、Android楽しさ・奥深さを知っていただけると嬉しいです。

具体的には以下の様なものを想定しています。
* 便利なコマンド(adb,systrace。adb関連多め) ※1
* Android Studio Plugin
* Gradle Plugin
* デバッグに便利なライブラリ
* その他開発で便利なツール

※ このセッションはADT(Android Developer Tools)だけに関するものではありません
* This session is not about ADT (Android Developer Tools)

※1 参考 https://github.com/operando/Android-Command-Note
開発環境・ツール(Productivity and Tooling)50分
Shinobu Okano(@operandoOS)
13
2015/11/13 13:38:00はじめてのParse.com対象者:
Androidアプリを開発したいが、サーバサイドの実装に躊躇している開発初心者

概要:
AWSやGCPに代表されるようにPaaSは今やアプリ開発には欠かせないものになっています。
Androidアプリ開発においても、MBaaS(Mobile Backend as a Service)として様々なプロダクト(プラットフォーム)が誕生しています。
今回のこのセッションではMBaaSの代表例としてFacebook社が開発・運営を行っている『Parse.com』(以下、Parse)をご紹介したいと思います。
※Parseは2011年よりサービスを開始し、2013年にFacebook社に買収されたことにより注目を集めました。

様々な機能がありますが、その中からもっとも需要があると思われる機能3点(ログイン、データ保存、通知)をピックアップしてご紹介します。
実際に実装サンプルとその動作の解説をまじえつつ紹介する予定です。

セッション内容(予定):
・Parse.com とは
・Parse.com で便利な機能紹介
・実装サンプルと動作の解説
・参考文献紹介
Android の最新動向 (Trends in Android technology)30分
Shigeki Yamato (heki1224)
14
2015/11/14 2:44:12Android実プロダクトへのKotlinの導入事例・概要
Androidの開発においてKotlin言語は注目度がとても上がってきていると思いますが、実プロダクトで使われている実績まだそれほど多くないのではないかと思います。そこで、Sansan社で開発しているアプリEightのAndroid版の開発実績を元に、Kotlinの実プロダクトへの導入という観点から

- 既存のJavaプロジェクトへのKotlinの導入の過程
- Javaのコードとの共存
- ライブラリの使用実績と気をつけるべきポイント
- Kotlinの便利な点
- プロジェクトをすすめるにあたって苦労したこと
- 導入後のメリット

といったことについて話したいと思います。

・対象者
すでにJavaでのAndroidアプリの開発実績がありKotlinの導入を検討している方
Kotlinがどういったものか興味のある方
開発環境・ツール(Productivity and Tooling)30分山本純平
15
2015/11/14 7:19:48Camera 2 APIOne of the many new features in Lollipop, Camera 2 is a new API for image and video capture and processing. For developers, Camera 2 presents both an opportunity to create more sophisticated and professional image and video applications and a much more complex and advanced API that requires some time and patience to master.

In this talk we will discuss the transition from the first Camera API to Camera API 2, look at how Camera 2's pipeline works, review setting up a camera and capturing images, and talk about the new data and capabilities that can be leveraged to build fully featured camera applications.
Hardware50 minutes
Queen Code Monkey
16
2015/11/14 7:53:51Loving Lean LayoutsXML layouts are a fundamental part of Android development at all levels. Getting started is straightforward but creating efficient layouts while still achieving the desired UI takes some practice and a few tricks.

In this session we will look at creating lean yet lovely layouts and
discuss why efficient layouts matter to both developers and users, look at use cases and best practices for standard layouts, determine when a
custom view is a good choice, review common mistakes and misconceptions, and share some tricks and situational techniques.
Platform50 minutes
Huyen Tue Dao (Queen Code Monkey)
17
2015/11/14 7:55:42Camera 2 APIOne of the many new features in Lollipop, Camera 2 is a new API for image and video capture and processing. For developers, Camera 2 presents both an opportunity to create more sophisticated and professional image and video applications and a much more complex and advanced API that requires some time and patience to master.

In this talk we will discuss the transition from the first Camera API to Camera API 2, look at how Camera 2's pipeline works, review setting up a camera and capturing images, and talk about the new data and capabilities that can be leveraged to build fully featured camera applications.
Hardware50 minutes
Huyen Tue Dao (Queen Code Monkey)
18
2015/11/15 9:32:40Fearless Localization and Internationalization Across the NationsMany people are intimidated by localization (l10n) and internationalization (i18n) but they don’t have to be—Android provides many tools out of the box to aide you in global domination. Learn what to watch out for while coding your app that will make your life easier once you receive localized content. We’ll cover alternate resources, strings files, date and number formatters, currency, and other tips from Android Studio, Google, and third parties that will turn you into an i18n and l10n champion.Quality and Sustainability50 minutesSiena Aguayo
19
2015/11/15 9:36:17Gotta Persist 'Em All: Realm as Replacement for SQLiteRealm is a new player on mobile database scene, and acts as a replacement for SQLite on Android and Core Data on iOS by providing a database and an easy-to-use object-relational mapping-like interface. Learn how to use it in your own projects and how it compares to working with SQLite in a beginner-friendly sample app with Pokémon.Trends in Android technology50 minutesSiena Aguayo
20
2015/11/16 22:32:42Androidエンジニアになって2年の学び対象者:
- これからAndroidアプリ開発を始めたい人
- Androidアプリ開発を始めたばかりの人

概要:
DroidKaigi 2016が開催される頃にはAndroidエンジニアとして2年目が終わります。
0からAndroidアプリ開発の技術を学んでいくにあたって、どのように学んでいったのか、
どんな失敗をしてしまったのかなどを共有したいと思っています。

また、1人で開発を行うことと、チームで開発を行う場合の違いや注意点も共有したいです。
まだまだ円熟したAndroidエンジニアではありませんが、今だからこそ振り返ってみて、
これからの一歩に役立つかもしれない、良かったところ、悪かったところを
皆様にお伝えできればと思います。
その他(Others)初学者向け30分宮下 竜大郎
21
2015/11/17 0:12:13Support Library 総復習[概要]
公式サイトによると2011年3月に最初のSupportLibraryリビジョン1がリリースされ、2015年11月現在ではリビジョン23.1.1までアップデートされてきました。最初はv4という1つのライブラリから始まりましたが、今ではv7やDesignなど様々なSupportLibraryが存在し、その数はどんどん増えていってます。
本セッションは、どんなSupportLibraryがあり、どんな機能が実現できるのかを解説し、SupportLibraryを使いこなすための手助けとなる内容です。

[対象者]
Androidアプリ開発初級〜中級

[内容の候補]
- 全SupportLibraryの提供する機能の解説
- 主要な機能の動作デモ
メンテナンス (Quality and Sustainability)50分下川 敬弘
22
2015/11/17 6:56:53怖くないgradleでのビルド環境設定とBazelAndroidStudioで使われているビルドシステムgradle
デフォルトのまま使っているけど本当はビルド時もっと色々gradleにいい感じにやってもらいたい!と思っている方のためのセッションです

本セッションではgradleを使いこなしビルドからデバッグ用、本番用apkの作成、署名や新ビルドシステムとして注目されてるBazelで実際にビルドを行ってみた感想についてお話しさせていただく予定です
開発環境・ツール(Productivity and Tooling)30分嶋田達哉
23
2015/11/18 16:03:57モバイルチーム開発を支える Kotlin# 対象者
Kotlin を Android 開発に本格導入しようと迷っている方

# 概要
Kotlin が Android 界隈でも話題になり、実際に Android 開発に導入した実例も増えつつあります。
私もそんな開発者のひとりであり、実際に Kotlin を製品開発に採用しました。
今回は、製品開発への導入過程や実践の知見をお話します。

Kotlin の技術的な観点というよりは、どのようなメンバーと開発するときに Kotlin の恩恵を受けられるかという観点になります。
今回は iOS / Android 両対応の新規開発における iOS エンジニアとのコミュニケーション・相互レビュー・入れ替わり実装などを挙げて、開発現場を支えてくれた Kotlin の魅力をみなさまにお伝えできたらと思います。

具体的には下記のことをお話します。
- チームの課題と Kotlin
- iOS 開発者とのコミュニケーション・相互レビューについて
- flux アーキテクチャの実践
開発環境・ツール(Productivity and Tooling)30分@laprasDrum
24
2015/11/18 18:23:45クックパッドにおけるAndroidエンジニアの役割とその変遷対象者 : モバイルアプリ開発チームに参加している人、率いている人、これからチームを作ろうと思っている人

私が2013年10月にクックパッドに入社した当時、社内のエンジニア60名ほどに対してAndroidエンジニアは私を含めて3名でした。現在ではAndroidエンジニアは10名を越え、iOSやQAを含めたモバイルチーム全体は25名まで成長しました。

私が入社する前のモバイルエンジニア0~1人時代から現在に至るまで、どのようにモバイルチームがどのような課題に直面し、改善を行っていったかを時系列で話します。モバイル開発プロセスの構築と改善に役立てれば幸いです。

- 2012年 4月 ハイブリッドアプリ時代
- 2013年10月 Native化へのフルスクラッチ
- 2014年 4月 モバイルファースト室設立
- 開発プロセスの整備
- 品質の向上
- モバイル開発の環境整備
- 2015年 1月 モバイルファースト室 解散、モバイル基盤チーム新設
- 各事業部へ散りサービスの価値を最大化
- モバイル開発基盤の強化
- 2016年~ これからのモバイルエンジニア
その他(Others)開発プロセスの改善30分sys1yagi
25
2015/11/18 18:30:35Fundamentals of the Data Binding対象者 : Data Binding Libraryが気になっている人

Google I/O 2015で発表されたData Binding Libraryの基本的な解説と導入事例を話します。
内容としてはC88 Androidビルディングデザイン(https://techbooster.booth.pm/items/126677)で書いた「Fundamentals of the Data Binding」をベースとします。

Data Binding Libraryにどのような機能があるのか、どのように使うとよいか、バッドプラクティスなどなど
開発環境・ツール(Productivity and Tooling)30分sys1yagi
26
2015/11/20 0:01:43Androidにおけるデバッグに強い通信処理の実装[対象者]
初級者

[概要]
Webサービスの開発では、サーバーサイドもクライアントサイドも頻繁な更新が行われます。その中でトラブルが起きた際、どこに問題があるか探るために通信内容をチェックすることは、とても重要です。
そこでHttpUrlConnectionのエンジンとしても採用されたokhttpを中心として、Retrofitを使った通信処理の実装や、stetho/charlesといったツールを活用したデバッグ方法などを紹介します。

[発表内容の案]
- Retrofit+okhttpでの通信処理の実装例
- stethoやcharlesで通信内容を確認する
- okhttpのInterceptorをデバッグに活用する
- Retrofit2(beta)でさらに便利になる機能の紹介
開発環境・ツール(Productivity and Tooling)30分下川敬弘
27
2015/11/20 10:08:16KotlinとJavaで作るライブラリ設計対象者:Kotlinを使い始めた方、ライブラリ制作を行っている
内容:
RxAnimation(https://github.com/Reyurnible/RxAnimation)というライブラリをKotlinとJavaの両方に対応して作成した際に感じた、ライブラリ設計とリリースなどで気をつけるべき点について話したいと思います。
Kotlinでのドキュメント生成なども盛り込めたら盛り込もうと思います。
Android の最新動向 (Trends in Android technology)30分保坂 駿
28
2015/11/20 18:46:52カメラアプリはじめの一歩Camera2 APIがリリースされてかれこれ1年がたちますが、コールバック地獄ともいえるAPI設計のとっつきの悪さがあるためか、あまり普及している様子がありません。かといって今からCamera APIを利用するのは、<del>何かに負けたような</del>非推奨APIなので動作保証も難しくなります。

本セッションでは、セッション、キャプチャといった設計上、重要な概念を解説し、Camera2 APIのとっつきの悪さを解消して「構えていたけど、これなら使えそうだな」と思ってもらえることを目的にCamera2 APIを解説します。

APIをみてみると、カメラの新しい用途として、たとえば撮影時パラメータである露出を変化させながらの連写する等を満たすために、パイプラインという概念がでてきます。この考え方はパフォーマンスを追求する設計としてとてもよくできているのでカメラアプリに興味がある人はもちろん、非同期APIの設計モデルとしても参考になると思います
ハードウェア (Hardware)50分mhidaka
29
2015/11/23 16:48:01実践!Android Studioプラグイン開発Android Studioは、今やAndroid開発になくてはならないIDEとなりました。便利なプラグインも豊富に公開されていますが、その開発手法についてはあまり知見が共有されていないように思います。私自身も以前にプラグインを開発した時に、入門以上の情報が少なく苦労しました。
https://github.com/konifar/android-material-design-icon-generator-plugin

「便利なプラグインのアイデアがあってもどうしていいかわからない」というAndroid開発者に、自分でも作れそうだと感じてもらえる話をします。以前に入門記事を書いたのですが、これよりもう少し実践的な内容に触れたいと思います。
http://qiita.com/konifar/items/c6e23921ffec475907fc

[対象者]
・プラグインにお世話になってる人
・作ってみたいプラグインがある人
・Android Studio好きな人

[内容]
・タイプ別の作り方(コード生成、画面表示、ファイル操作など)
・作りたいプラグインの実装方法をどうやって調べるか
・Gradleプロジェクト化とCI
・Kotlin導入方法
開発環境・ツール(Productivity and Tooling)30分@konifar
30
2015/11/24 15:23:11モバイルVR開発入門2016【概要】
モバイル・Android中心としたVRアプリ・コンテンツ開発について、入門レベルで幅広くデバイス・プラットフォーム・ゲームエンジンの特徴・最新ステータスについてお伝えし、その日からすぐにVRコンテンツ開発を始めるための情報をお届けします

【対象者】
・モバイルVRコンテンツ開発に興味のある開発者
・いくつかデバイスを試したあたりで、突然上司に「来週からお前がVRだ」と言われて勝率の高いプラットフォームと手法を選択したい人
・いい加減Android一本足は将来の幅が狭いだろうとUnityやUEをインストールしたけどチュートリアルを卒業する情熱が足りずにVRという夢しかないジャンルでリベンジしたい人
・とにかく多くの環境でHello Worldまでは済ませて知った顔でITの未来をウォッチしたい人

【キーワード】
Cardboard, Gear VR, AndroidとiOS, モバイルとデスクトップ, Unity, UnrealEngine, Youtube, ハコスコ, Oculus Rift, PSVR

※発表時点最新情報を出来る限り盛り込む想定です
プラットフォーム(Platform)50分youten
31
2015/11/24 15:30:43産業用ドローン制御へのAndroid適用事例◯概要
2部構成です。前半はシステム開発事例、後半はデザイン事例
1. 産業用ドローンを制御するシステムへのAndroidの活用
2. 産業用ドローンの操作というシチュエーションを例にした、アイウェアやウォッチのUIデザイン
産業用ドローンの仕組みと制御の方法、ドローンの活用分野を紹介した上で、
ドローンを制御するにあたってAndroidをどのようにシステムに組み込み、活用できるかの開発事例を紹介します。
後半は、その操作や制御においてのデザイン事例について紹介します。
アイウェアやウォッチなど、コンシューマー向けには導入しづらくノウハウの少ない端末でのデザインをどのように設計していくのか、ユーザー視点でつくっていった過程を紹介します。

◯対象
・新しいシステムにAndroidを適用したいと考えている方
・スマホ以外のUIデザインに興味のある方
その他(Others)
ハードウェア / UI・デザイン の両方入ります。。
50分
渡辺知男(フリービット)/ 秋葉ちひろ(ツクロア)
32
2015/11/24 15:34:28Android6.0のAndroid 6.0で、ランタイムパミッションが導入されました。
新しいパミッションモデルに対応したアプリと対応していないアプリを比較した場合
ユーザは、対応したアプリを選択するため大きな差別化要因ともなります。
新たにコードを書かなければならないため、めんどくさいと思っている方も多いと思います。
そんな方へ、ランタイムパミッションの説明、注意事項についてお話したいと思っております。
また最近発生しているセキュリティ的な事故と、その対応策をご説明いたします。
その他、基本的に、アプリを公開する人に知ってもらいセキュリティに関する事項を提供したいと思っております。
メンテナンス (Quality and Sustainability)50分がく
33
2015/11/24 22:54:56パーミッションモデルの過渡期への対応[概要]
Android6.0で新しいパーミッションモデル(Runtime Permission)となり、初回実行時に許可が必要になったり、後から取り消しが可能になるなど、
今までのモデルと大きく様変わりしました。
とは言え、現状この新しいモデルの恩恵を充分に受けられるのは、Android6.0の端末上で、targetSDKversion=23のアプリを動かしたときのみです。
しばらくの間は6.0以前のAndroidが搭載された端末の方が多く、その対応を考えなければなりません。
また、大きくモデルが変わったため、Android6.0に全面的に対応するまで時間のかかるプロジェクトも想定されます。
この過渡期の間、Permission関連で問題を起こさないための手法についてお教えします。

[対象者]
Androidアプリ開発初級者~中級者

[内容]
-Runtime Permissionについて
-Runtime Permissionのベストプラクティス
-Android5.1以前の端末に対応したtargetSDKVersion=23のアプリの作り方
-targetSDKVersion=23に出来ないアプリがAndroid6.0の端末で問題を起こさない方法
メンテナンス (Quality and Sustainability)30分aki_sh_7
34
2015/11/24 23:54:37Google Play 開発者サービスの最新事情と Nearby APIGoogle マップや Google アナリティクス等、Android アプリ内で何らかの Google のサービスを利用したい場合に必要となる「Google Play 開発者サービス」ですが、頻繁に新しいバージョンがリリースされており、その度に Location APIs, Face API, App Invites 等さまざまな API が追加されています。

本セッションでは、そのような Google Play 開発者サービスの最新事情を説明させていただきます。
また Google Play 開発者サービス バージョン 7.8 で追加された近接通信 API である「Nearby Messages API」について、実際に会場で試してみるとともに、開発のポイントと事例を紹介できればと思います。

[対象者]
* Google Play 開発者サービスで出来ることを確認し、アイデアを広げたい方
* 端末間の近接通信に興味がある方
プラットフォーム(Platform)50分しみず ゆうき
35
2015/11/25 10:49:50GitLab as an effective CI systemThis presentation will show all the necessary steps to setup a full Continuous Integration environment based on GitLab allowing source management, distributed build based on source commits and deployment of built application for sharing and testing.

This approach is used extensively and successfully for projects done by Darkhand Studio and helps to streamline all the development process enhancing thus the overall productivity and reducing the lead-in-time between development and test.

A working implementation of the proposed approach will be shown during the presentation.
Productivity and Tooling30 minutesFrank Bignone
36
2015/11/25 12:41:43Managing Runtime PermissionsIn the last GoogleIO 2015, google released the new feature of Marshmallow which is called "Runtime Permissions". It drastically changed the way to handle permissions from the previous mechanism.

The change is basically great for users but also the hell for developers. Because developers have to write a ton of boilerplate codes and the new mechanism and api may not be easy for developers.

### For example
- `shouldShowRationale` is a really confusing method
- There is a lot of class which have methods about permissions, PermissionChecker, ContextCompat, ActivityCompat, FragmentCompat, etc...

So in this session, I'm gonna talk about what actually the change is and how to manage permissions well. And I'm also gonna introduce the usage of my library "PermissionsDispatcher", which solves the problem that writing a ton of boilerplate codes.
https://github.com/hotchemi/PermissionsDispatcher
Trends in Android technology30 minuteshotchemi
37
2015/11/26 1:11:13パフォーマンスを追求したAndroidアプリを作るには対象:Androidアプリの開発を経験している方。特に、おれ(アタシ)もうAndroid開発なんてわかってるしーと思っているそこのあなた。

Androidアプリのパフォーマンスを向上させるテクニックを様々な観点で網羅的に説明する。
パフォーマンスを追求した良質なアプリケーションを構築する手掛かりを得られるセッション。
TOPIC:
- Androidアプリにおけるパフォーマンスの基本原則について
- UIのパフォーマンスを向上させるために
- メモリのパフォーマンスを向上させるために
- CPUのパフォーマンスを向上させるために
- バッテリーのパフォーマンスを向上させるために
- ハードウェアのパフォーマンスを向上させるために
メンテナンス (Quality and Sustainability)50分t.egg
38
2015/11/26 21:29:08Instant Runを実現する仕組みAndroid Studio 2.0の目玉となる新機能Instant Runはどのように実現しているのか、IDEはどのようにAndroidアプリケーションをパッケージ、インストール、デバッグしているかという側面から語ります。Instant Run自体の仕組みは11月時点で未公開なので、2月まで未公開であれば、既存の類似技術をもとに推測で語ります。

対象者: フレームワーク、開発ツールの仕組みに興味のある開発者
開発環境・ツール(Productivity and Tooling)30分Atsushi Eno
39
2015/11/27 1:23:41Encouragement of video feature development## 対象/terget
動画に関する機能を自分のアプリで作りたい人/People who want to create a video feature in your apps
## 概要/abstract
動画に関する機能を持つアプリケーションが増えてきています。映画のサブスクリプションサービスも増えて、これからどんどん動画のニーズは増えていくと思います。これからの動画時代に備え、Androidと動画のこれまでとこれからについての話とアプリ開発に関することを実装と共に紹介します。/
Application that has video feature has been increasing. Also, subscription service of the movie is increasing. I think from now on growing needs of more and more video features.To prepare for video era, I will be introduced the story of video in Android and the implementation about development.
## 内容/content
- 動画を扱うことのメリット・デメリット/Pros and Cons of video feature
- Androidと動画/The story of video in Android
- 動画機能の種類/Kind of video features
- 動画開発への第一歩/First step of video development
- ExoPlayerの導入と実装/Introduction of ExoPlayer
- 動画の加工と実装/Processing of video

*注意! / NOTE!*

スライドは英語で作成します/Slide -> English

発表は日本語で行います/Speaking -> Japanese
ハードウェア (Hardware)30分
Yuichi Maekawa(kaelaela)
40
2015/11/27 11:18:53Annotation Processing 事始めAnnotation Processing(Pluggable Annotation Processing API)を利用して、例えば ButterKnife のようなアノテーションからソースコードをコンパイル時に生成するライブラリの作り方について解説します。

- 環境、利用するライブラリ
- 作り方(これがメイン)
- テストの方法
- 気づきやTips
- ライブラリとしての配布方法(時間があれば)
- etc..

できるだけ初めての方でも理解しやすいように説明する予定です。また準備が間に合えば、ミニマム構成の参考ソースを GitHub に用意します。

[対象者]
- アノテーションベースのライブラリを作りたいと思っている Android 初級者〜中級者の方
- 仕組みが知りたい方 .. 仕組みを理解することで既存ライブラリへの理解が深まる

[話さないこと]
- Java的な歴史や背景
- 既にアノテーションベースのライブラリを作った経験がある方向けの踏み込んだ内容/先進的な内容
開発環境・ツール(Productivity and Tooling)30分久須裕之(@hkusu_)
41
2015/11/27 11:35:54Annotation Processing 事始めAnnotation Processing(Pluggable Annotation Processing API)を利用して、例えば ButterKnife のような、アノテーションからソースコードをコンパイル時に生成するライブラリの作り方について解説します。

- 環境、利用するライブラリ
- 作り方(これがメイン)
- テストの方法
- 気づきやTips
- ライブラリとしての配布方法(時間があれば)
- etc..

できるだけ初めての方でも理解しやすいように説明する予定です。また準備が間に合えば、ミニマム構成の参考ソースを GitHub に用意します。

[対象者]
- アノテーションベースのライブラリを作りたいと思っている Android 初級者〜中級者の方
- 仕組みが知りたい方 .. 仕組みを理解することで既存ライブラリへの理解が深まる

[話さないこと]
- Java的な歴史や背景
- 既にアノテーションベースのライブラリを作った経験がある方向けの踏み込んだ内容/先進的な内容
開発環境・ツール(Productivity and Tooling)30分久須裕之(@hkusu_)
42
2015/11/27 13:23:04TV向けAndroidアプリの開発TIPSと最新事情[概要]
2015年はFire TVやAndroid TVが日本にサービスを開始し、TV上でアプリを利用するシナリオが増えてきました。既にお持ちのアプリをTV向けに開発すべき手段や機能などをご紹介します。

下記の内容:
AndroidのTV市場の最新事情のご紹介
TV向けへの開発手順について
TV向けの面白い機能などのご紹介

[対象者]
アンドロイド開発初級 - 中級
アプリの開発経験はあり、TV向けに延長を考えている方
TV市場に興味がある方

ハードウェア (Hardware)30分小林 剛士
43
2015/11/27 15:56:53Designing For Android WearTechnology is a fast-growing area. And we are in the age of wearables. With wearables we started to bring technology on our skins. That means we have quite interesting experiences. As UX and UI designers or developers there are some key points we should give attention.

Unfortunately there are almost no good examples specially with material design on Android Wear. In this presentation we will discuss about design principles and bad examples for Android Wear.
UI and Design30 minutes
Resul Caner Yildirim
44
2015/11/28 9:01:339patch is more than 9!9patch の使い方、作り方

- 9patch は9分割以上もできる
- padding areaの使い方

9patch の作り方
- Draw9patch
すべての DPIについて指定しなきゃいけない!

- gradle-android-9patch-plugin
https://github.com/dagezi/gradle-android-9patch-plugin
プラグインで 9patchつくってくれて便利、楽!
UI・デザイン (UI and Design)30分dagezi
45
2015/11/28 11:35:20Customizing Theme and Style for Material Designテーマやスタイル活用できていますか?

本セッションでは最初にテーマ・スタイルの基礎を解説し、アプリ用のテーマの正しいカスタマイズ方法を紹介します。その後ステータスバーの透明化など新しいバージョンで追加された機能と、それらをバージョンごとに切り分ける指定方法を紹介します。最後にAppCompatで用意されているMaterial Designを実現するためのテーマ・スタイルを見ていきます。AppCompatで使えるのはcolorPrimaryやcolorAccentだけではありません。WidgetやTextAppearanceなど、レイアウトXMLで直接指定するのに便利なものもいろいろ用意されています。これらの定義と活用方法を紹介します。


対象者
- テーマ・スタイルをなんとなく使っている人
- 正しいカスタマイズ方法を知りたい人
- 新しいバージョンで追加されたテーマ属性を知りたい人
- AppCompatのスタイルを活用したい人
UI・デザイン (UI and Design)50分
あんざいゆき(yanzm)
46
2015/11/28 21:44:16pluginを自作してgradleと少し仲良くなろう[対象者]
IDEがAndroidStudioに変わってからなんとなくgradleを使っているけど、どうも馴染めない初心者〜中級者

[概要]
AndroidStudioへの移行は既に皆さんお済みかと思います。android gradle pluginのおかげで 特に困ることなく普段の開発を進めていると思いますが、「正直、build.gradleの記法がよく分からない」「けれどとりあえず動くからいいや、と思っている」という方もそれなりにいらっしゃるのでは無いかと思っています。

実際私自身もそのような気持ちでしばらくgradleと付き合っていましたが、Pluginを自作してみることによって、そのgradleに対する障壁が解消しました。

本セッションでは、build.gradle中の
----------------------------------------------------
apply plugin: 'com.android.application'

android {
compileSdkVersion 22
...
}
----------------------------------------------------
このような記述の裏にどういうものが存在しているのかを知っていただき、開発をより効率化するためのgradle plugin開発を後押しすること を目的とします。

[内容]
- gradle pluginをAndroidStudio上で開発する最短の手順
- 実例として、シンプルな自作pluginのご紹介 (何かしらのopen source libraryを使ったpluginにする予定で、普段Android開発で使っているライブラリもそのまま使えると言うことも強調しようと思っています)
開発環境・ツール(Productivity and Tooling)30分@tsuyogoro
47
2015/11/28 23:54:59ぼくのかんがえたさいきょうの実装方針■ 概要
近年、Androidアプリ開発において、どんなライブラリが存在するのか知っておくのは必須といっても過言ではないでしょう。
しかし、初めてAndroidアプリの開発文化に触れてみて、業界としてどういうものがスタンダードになっているのか
みんなが何に注目しているのかを知るのには少し経験が必要になります。
代表的なものを中心に、個人的に今から作るとしたらこんな感じにしようかなっていうのを話していければと思います。

■ 対象者
 Android 初級 〜 中級

■ 話すこと
最低限知っておくべき、各ライブラリのメリット・デメリットを簡単に説明します。
また、最後に、自分ならこうする!みたいなのもまとめとして話したいと思います。
 - 開発環境
 - Language(Java8, Kotlin)
  Java8に近いものを実現するためのライブラリ(Lightweight-Stream-API, Retrolambda, ThreeTenABP)
 - Support Library (AppCompat, Design, Annotations, RecyclerView ...etc)
 - DataBinding
 - Network (Volley, Retrofit OkHttp ...etc)
 - Serialization (GSON, ProtoBuf)
 - Image Loader (Picasso, Glide, Fresco ...etc)
 - Effect (GPUImage ...etc)
 - DI (ButterKnife, Dagger, RoboGuice)
 - FRP (RxJava, RxAndroid, RxLifecycle ...etc)
 - DB/ORM (Realm, ActiveAndroid, RxPreferences, Sqlbrite ...etc)
 - Pub/Sub (Otto, EventBus ...etc)
 - UI (ObservableScrollview, Calligraphy ...etc)
 - Debug (Crashlytics, Timber, Hugo, Steho, LeakCanary, Takt ...etc)
Android の最新動向 (Trends in Android technology)50分wasabeef
48
2015/11/29 4:59:5317ヶ国の多言語対応Tips17ヶ国語対応しているTaptripというアプリを作っています。
多言語対応で押さえておくべきポイントと、現場の開発フローについて話します。

多言語対応といえば、strings.xmlやRTLの対応はわりと知られていますが、実際に対応するとなると他にも気をつけるべきポイントがたくさんあります。
例えば、ロシア語に対応すると、文字の長さが日本語の倍以上なのでレイアウトにも気を遣わなければなりません。
またアプリの翻訳を外注する場合、依頼の仕方や費用、翻訳されるまでの時間といった開発のフローも考える必要があります。

今まで探り探りやってきた知見を公開することで、今後みなさんが多言語対応をする際の助けになればいいなと考えています。


[対象者]
多言語対応したい人

[内容案]
・strings.xml(管理の方法、複数形の対応)
・RTL対応(やるべきかどうか開発優先度なども含む)
・言語ごとに気をつけるべきデザインのポイント
・翻訳依頼のフロー
・テスト手法
・ユーザーからのフィードバックと改善
メンテナンス (Quality and Sustainability)50分@konifar
49
2015/11/29 14:09:49Hacking RemoteViews to your needsAndrod remoteview present a big hassle when working on appwidgets and custom notification layouts

1. The talk will focus how android developers can work with custom remoteview method names
2. Working with custom typefaces
3. performance driven widget update code
4. Intent driven widget scheduling
5. Working with subject limitations of RemoteViews
Other
Working with RemoteView limitations
30 minutes
Supratim Chakraborty
50
2015/11/29 22:54:51用途に合わせたアニメーションの実装方法【対象者】
Androidアプリ開発初級〜中級

【概要】
Androidのバージョンが上がり、アニメーションの仕組みも随分増えました。
一口にアニメーションといってもViewの中身を動かすのか、View自体を動かすのか、
レイアウトごと動かすのか複数あります。
Androidのフレームワークはそれぞれに仕組みを準備していますが、
機能面で重複しているものや依存関係にあるものがあり、
そろそろ実装するにもどれを選べば良いかがわかりにくくなって来ています。

本発表では数あるアニメーションの仕組みの中から、
どの用途にはどれを使えば良いかについて、
考え方とアプローチについてお話します。

【キーワード】
- Drawable Animation
- View Animation
- Property Animation、
- Transition Animation
- Actvity/Fragment Transition
UI・デザイン (UI and Design)30分住友孝郎
51
2015/11/30 1:51:35ChromeとAndroidの過去・現在・未来概要:
ChromeとAndoridは、お互いにバージョンが新しくなるごとに互いの親和性が高くなってきています。
WebコンテンツとAndroidアプリの両方を作っている場合、Chrome for Android(Android版のChrome)というのはWebとアプリを繋げる上で非常に重要な役割を果たしています。
今後さらに、ChromeとAndroidの関係性は重要になっていくと思います。

本セッションではChromeを活用したAndroidアプリ開発について話します。
はじめにChrome for Androidの概要、AndroidにおけるWebViewの変化などを話します。
次にChromeの技術の中でも、とくにAndroidアプリへ活用できそうな機能などを話します。
最後にChromeとAndroidの今後について、興味深い動き・考え方について話します。

内容案:
* Chrome for Androidの種類
* WebViewの変化
* Chrome Custom Tabs
* Web App Manifest
* Service WorkersとPush Notifications
* App Stream ※1
* Progressive Web Apps
* ChromeとAndroidの今後について(個人的主観)


対象者:
* WebコンテンツとAndroidアプリの両方を運用している会社 or 人
* ChromeとAndroidの親和性を有効的に活用したい人
* アプリ内でWebViewを使っている人 or 使いたいと思ってる人

※1 参考:http://insidesearch.blogspot.ca/2015/11/new-ways-to-find-and-stream-app-content.html
その他(Others)Chrome / Web30分
Shinobu Okano(@operandoOS)
52
2015/11/30 3:10:07What's the difference between JavaScript and Java?## 対象者
* アプリケーションアーキテクチャ・フレームワークに悩むAndroid開発中〜上級者
* Webフロントエンド環境からAndroidに移籍してきた技術者

## 概要
JavaScriptとJavaの違いを意識しながら,WebフロントエンドJavaScriptで流行ってるアーキテクチャや文化をAndroidに持ってくる話をします.

"フロントエンドJavaScript"と"Android Java",これらはまったく別物のようですが「ユーザからのインタラクションを捌く」という目的は共通しています.Android屋さんからすれば「Webフロントエンドは今の流行りが来年には腐っててこわい…」となりがちですが,逆に言えばそれだけのスピードで技術・環境が進化しているということでもあります.

AndroidにもData Bindingが公式に提供されはじめました.これはWebでも広く使われていた技術ですが,ついにAndroidに取り入れられました.
このように,互いの違いを意識しつつ,爆速で進化を続けるフロントエンドJavaScriptの流行りを取り入れることで,なにか新しい発見があるんじゃないか という話をします.

また,ReduxをAndroid環境に持ち込んだDroiduxというライブラリの実装から得た知見として,JavaScriptなど異環境のライブラリ等をAndroid Javaに取り入れる際に意識しなければいけない,言語間の差異からくる実装方針の違い等についても議論できたらと考えています.

(※ あくまでAndroidメインなのでJavaScriptには簡単にしか触れません)

## 内容
### 喋ること
* フロントエンドJavaScriptで流行りのアーキテクチャ
* Android JavaとWebフロントエンドJavaScriptの違い
* Flux, Redux: Application architecture JavaScript
* Flux, Redux for Android
* returns `rx.Observable<T>`なライブラリ
* `rx.Observable<T>`統一理論
* Annotation ProcessingによるCode generation
* Data Binding
* RxJava

### 喋らないこと
* Webの細かい話
* JavaScriptライブラリの詳細
* JavaScriptのUIコンポーネント系ライブラリ(Reactとか)
* AndroidのUIライブラリ
Android の最新動向 (Trends in Android technology)30分
Masayuki IZUMI (@izumin5210)
53
2015/11/30 3:54:27Advanced RecyclerView TechniquesMost people are now using Android RecyclerViews in their apps these days, however relatively few are using them to their full potential. The ItemDecorators and ItemAnimators components of the RecyclerView allow for much more flexibility to our list content then was every possible with ListView. While they have relatively simple APIs, unlocking their full potential can take some time and practice.

In this talk we will cover advanced usages of ItemDecorators to make truly unique list compositions. We'll also cover ItemAnimators to showcase how to make your content look great and feel like a polished Material designed application.
UI and Design30 minutesJoshua Jamison
54
2015/11/30 4:00:09RxJava : A New ApproachRxJava is a library that has gained a lot of popularity lately, especially in the Android scene. Many developers around the world have quickly switched to using it for all their applications. However many are still hesitant. RxJava requires a different paradigm in how we think about and design our code, but once understood and implemented can help us greatly simplify our logic and improve our application architecture.

In this talk we will cover RxJava from a compositional approach. We'll cover when to use it, how we get started, and what compositions we should be using. We'll also cover some of the common problems developers have with using RxJava on Android, and a few of the newer Android libraries for helping us to improve how we use RxJava in our Android applications.
Trends in Android technology50 minutesJoshua Jamison
55
2015/11/30 6:14:06分散コンポーネントOSとしてのAndroid[概要]
AndroidはLinuxカーネルを使用しているためにLinuxの一種として数えられることもありますが、実際はBinderフレームワークを使用した分散コンポーネントOSと見られるべきだと考えます。

分散コンポーネントOSとしてのAndroidがどのように作られているか、簡単な歴史的経緯と実際の実装について話したいと思います。

[発表予定内容]
・Android前史
・Androidを支えるBinderフレームワークの仕組み

[対象者]
アプリ開発には直接役立ちませんが、教養としてAndroidOSの仕組みや歴史に興味ある方
アプリ実行環境としてのモバイルOSフレームワークに興味ある方
プラットフォーム(Platform)30分l_b__
56
2015/11/30 6:28:56Android、ChromeOS、Brillo[概要]
2013年にAndy RubinからSundar PichaiにAndroid開発統括者が変わりました。
その後、しばしばAndroidとChromeOSの統合について報道されています。
実際Androidに取り込まれたChromeOSの機能がありますし、また11月に突如開発中ソースが公開されたIoT向けOS、BrilloはAndroidとChromeOSのハイブリッドとも言えるものになっています。

Android、ChromeOS(ChromiumOS)、Brilloの機能を比較し、将来的にAndroidにChromeOSの機能がどのように統合されていくのだろうかを妄想ベースでお話したいと思います。

[発表予定内容]
・Androidに取り込まれたChromeOSの機能
・Brilloの仕組み
・Android、ChromeOS、Brilloの構成の比較

[対象者]
・AndroidとChromeOSの統合ってどうなってるのよ、と興味をお持ちの方。
プラットフォーム(Platform)30分l_b__
57
2015/11/30 9:30:49go mobile in Androidgo mobile in Android

■ 概要
 昨今のAndoird界隈では、Javaに代わる言語として、Kotlinが騒がれていますが、go mobileも負けてはいません。Go1.5のリリースではiOSアプリも開発可能になり、Androidのサポートも更に強化されました。Web開発では、その柔軟さと速さで注目を集めているgoですが、今回はモバイル開発において、どのレベルのことが出来るのか、またAndroid特有のライフサイクルはどのように実装されているか等、深く突っ込んで解説したいと思います。


■ 対象者
 Android 初級
( go言語初心者の方にも分かりやすく解説します )


■ 話す内容
 go mobileの紹介
 go mobileでAndroidアプリを作る際に知っておくこと 
  - インストール方法とサンプルアプリ紹介
  - ライフサイクルについて
  - 画像表示やタッチイベントについて
  - APK作成について
Android の最新動向 (Trends in Android technology)30分goka
58
2015/11/30 9:51:19データを如何に保存するか【概要】
実用的なAndroidアプリを開発するためにはデータを適切に保存・使用する必要があります。日記アプリを開発する場合を考えてみても、ユーザーが入力したタイトルや本文、添付画像などがあると思います。データという側面からみるとタイトルや本文は文字列データであり、添付画像はバイナリデータと捉えることができます。このようにデータといっても様々な形式のものが存在しており、いいアプリを開発するためにはこれらを適切に扱う必要性があります。本発表では、Androidアプリ開発でよく登場するデータの特性と、それらをどのように保存するのが適切なのかについて話したいと思います。

【対象者】
・Androidアプリ開発初級者
・動けばいいや、を卒業したい人
その他(Others)初級者向け30分yuyakaido
59
2015/11/30 11:08:46「通知オフ」にされない為に。ネイティブアプリの最適な通知について。【概要】
デバイスに直接お知らせを配信できるアプリの通知は、メルマガよりも開封率が高いと言われ、
非アクティブなユーザーに対するリテンションを行う際にも非常に強力な機能です。
しかし、過度な通知や通知の内容によってはそのアプリの通知をオフにされたり、
最悪の場合アプリを削除されてしまう原因にもなります。

本発表ではネイティブアプリの最適な通知手段について考察し、実際に通知の開封率を上げる為に効果的だった取り組みと、
その実装方法について話したいと思います。

【対象者】
・Android開発 初心者〜中級者
・業務でアプリを運用している方

【キーワード】
・GCM
・Notidfication
・Wear
・ローカル通知
・ポップアップ通知
その他(Others)運用30分cooky_ch
60
2015/11/30 11:19:38Build your custom Rx Observable/Subscriber1. 概要
この1年で RxJava や RxAndroid の普及が進んでいるが、 提供される Observable や Operator を使うのに比べ、自分で Observable や Operator、Subscriber を作成するハードルは依然と高い。また、そもそも、自分の提供したい機能をどのように RxJava で表したら良いのか、についても考慮が必要となる。たとえば、処理の途中でダイアログを表示して、その選択によって処理を切り替えたい場合、どのようにしたら良いだろうか?ログイン画面のように Activity の遷移が行われるとしたら?カスタム Observable や Subscriber で unsubscribe はどのように扱えば良いだろうか?

このトークでは、筆者の作成した Nearby API 用 RxJava ライブラリ RxNearby (https://github.com/hkurokawa/RxNearby)を例に、どのように行いたい処理を RxJava に落とし込むのか、カスタム Observable やカスタム Subscriber を作成する際に何に注意すべきか、について解説する。特に、1) RxJava の中心は Subscriber であること、2) Observable が subscribe されたとき、および、observe されたときに、それぞれ、どのような順序で処理が伝わっていくか理解することはライブラリを作る上で重要であり、それらを含んだ内容を考えている。

2. 対象者
- RxJava 経験者
- Rx の概念を理解しており、詳細に興味のある人

3. 目次案
- Nearby API の概説と RxJava でどのように扱うかのアイディア
- RxNearby の使い方
- Subscriber から見た Observable および Operator
- MessageSubscribeOnSubscribe の説明と注意点
- MessagePublishOperator の説明と注意点
Android の最新動向 (Trends in Android technology)30分hydrakecat
61
2015/11/30 12:44:22CircleCIの旨みと辛みクラウド型の CI環境として 1年半ほど Circle Ciを使い続けてきました。
Jenkinsなどを社内でメンテするよりは楽だとは思いますが、使いこなしていくうえでいろいろノウハウがあります。それを苦労談とともに語りたいと思います。

- 一番簡単な導入
- 秘密鍵の置き場所
- テスト結果の閲覧法
- versionCodeの付け方
- featureブランチのテスト法
- ビルド時間短縮
- メモリ制限との戦い
開発環境・ツール(Productivity and Tooling)30分dagezi
62
2015/11/30 14:25:16View into the abyssAndroidアプリの画面を構成する最小要素「View」について基礎から解説します。
ふだんXMLで書いているViewレイアウトが実行時にどのように組み立てられているのか、
How-toにとどまらない実際の動作原理に興味がある方向けの講演です。
主に以下の二点について詳しくお話しする予定です。

View Treeのレイアウト構築や描画の仕組み
- onMeasure, onLayout, onDraw
- requestLayout, invalidate
- Custom ViewやCustom ViewGroupの作り方

Viewパフォーマンス最適化
- 不要な再レイアウトや再描画を避けるには
- (余裕があれば)ハードウェアレイヤーについて
プラットフォーム(Platform)30分森 真樹
63
2015/11/30 15:20:54SELinux MMAC (middleware MAC) の紹介SELinux MMAC (middleware MAC) の紹介

概要
Android はセキュリティ強化のため、Linux カーネルの空間よりも上の層に機能が追加されています。
これは SELinux MMAC (middleware MAC) と言われていて、次の機能があります。

- Install-time MAC
- Enterprise Operations (EOps)
- IntentFirewall

それぞれについて何が出来るのか、AOSP (Android Open Source Project) での使用状況や実装内容を含めて使い方を紹介します。

対象
- Android のセキュリティに興味のある人
- SELinux に興味のある人
- Android Platform 開発をしてる人(アプリケーション開発には直接役立つ事はないかと思います)
プラットフォーム(Platform)30分@androidsola
64
2015/11/30 15:38:56Bazelを使ってみた新しいビルドツールであるBazelについてお話をします。
http://bazel.io/
Bazelを実プロジェクトに組み込む際の知見や、ハマるところなどを共有できればと思います。
また、BazelとGradleの違いや、Bazelの特徴であるマクロなどについて話をします。
これからBazelを使ってみようという方の少しでも手助けになれば幸いです。
開発環境・ツール(Productivity and Tooling)30分henteko
65
2015/11/30 15:51:10Advanced Android EspressoDo you test? It’s okay if you don’t - historically the tools had not been stellar. But they have gotten much better, and I am going to show you my favorite, instrumentation testing with Espresso.

In this talk you will learn:
* The basic structure of an Espresso test (Matcher, ViewAction, ViewAssertion)
* Combining matchers such as withParent, isAssignableFrom to pinpoint your view
* onData and RecyclerViewActions to test ListView and RecyclerView
* Custom ViewAction and ViewAssertion
* Using Dagger and Mockito to write repeatable tests

By the end of the talk you will be itching to write some tests yourself!
Quality and Sustainability50 minutesChiu-Ki Chan
66
2015/11/30 15:53:53Advanced Android TextViewThe humble TextView was there when you wrote your Hello World app. You know how to change its text size and color, perhaps its font too. But do you know that you can also put multiple font sizes in the same TextView? Highlight individual words? Embed inline images? Come and learn how to unleash the power of TextView with Span, Paint, and much more.UI and Design50 minutesChiu-Ki Chan
67
2015/11/30 17:53:04Android Wearアプリ開発のイロハウェアラブルデバイス向け「Android Wear」用コンテンツを開発されている方はどれくらいいらっしゃるでしょうか?

Android Wearを含めてウェアラブルデバイスは、ユーザが常に身につけているという大きな特徴を持っています。そのため、魅力的なウェアラブル向けアプリを開発すれば、スマホ以上にユーザに価値を提供できる可能性があります。

本セッションでは、Android Wearの世界を盛り上げていくべく、アプリ開発に興味を持っていただけるよう、Android Wearで実現できる世界をデモを交えて、具体的にイメージできるような内容をお伝えします。

■発表予定内容
・Android Wearの概要
・Android Wearで実現できる世界
 (対応アプリ例などを紹介)
・Android Wearの機能・各種Tips
 (特徴的な機能について、デモを交えて解説)
・Android Wearの最新動向
 (カンファレンス時点における最新動向)

■対象者
スマホやタブレット向けAndroidアプリ開発に関して入門レベル程度の経験がある方
(Android Wearに関しては、未経験で構いません)
Android の最新動向 (Trends in Android technology)30分korodroid
68
2015/11/30 19:05:40Continuous Integration for AndroidJenkins has always been a good friend for developers, but it's also an ever evolving tool.
After a short description of Jenkins and its evolution we will discuss the best practices regarding Android and explore one of its most exciting new features: Workflows!
Productivity and Tooling50 minutes
Emanuele Zattin
69
2015/11/30 19:06:55ライブコーディング・Androidのライブラリを作ってみよう[対象]
Androidの開発はしているけど、ライブラリは作った事がない人、これからライブラリを作ってみようと思う人

[概要]
普段、Androidの開発は行っていたとしても、ライブラリを作成された経験がある方は必ずしも多くないと思います。本セッションではライブラリの作成方法を説明しつつ、ライブラリを実際にみなさんの前で作成し、Maven Central Repositoryへライブラリを登録し、それを使うところまでを説明しながら、実際に手を動かしながら進めていきます。

また、簡単なサンプリアプリを作成し、そのアプリからライブラリへと切り出して公開する形で説明します。
これにより、普段みなさんが作成されている素敵なアプリから、抽象化出来る部分を切り出し、ライブラリ化する事で、素敵なライブラリが今以上に増える事を望みます。

[発表の内容]
以下のようなライブコーディングとその説明を実施します。

- 簡単なサンプルアプリの作成
- サンプルアプリからライブラリを切り出す
- テストの作成
- 作成したライブラリをMaven Central Repositoryに登録
- 別アプリからそのライブラリを使う

※ライブコーディング中の万が一のトラブルに備えて、一通りの流れを紹介するスライドは作成しておき、ネットワークトラブル・PCのトラブルに見舞われた時にも問題ないように準備致します。
メンテナンス (Quality and Sustainability)30分
Masataka Kono(@mapyo)
70
2015/11/30 19:22:15Annotation Processing in AndroidAnnotation Processing is an advanced Java technique that can be used in Android for great benefits. In this session you will learn the basic, see some examples and learn to write one yourself with proper unit tests!Platform30 minutes
Emanuele Zattin
71
2015/11/30 19:53:01Recipes in RxJava for AndroidYou've heard of reactive programming and RxJava but aren't sure how to do some things? Worried about the Android lifecycle? Scared of multithreading? This talk will show you how to do all of this, easily (well, easiER than normal Java/Android) and lots more!

For example, want to add a network API layer between your app and the network calls? Use a Subject. want to have quick and easy network caching? Just use BehaviourSubject which caches the last value. Don't want to stop and restart network calls because the app rotated? Make an Api Manager married to the Application context instead of the Activity context.

It will also show how you can use multithreading that is almost painless, and - even more importantly - some of the common problems and bugs encountered while using RxJava multithreading.
Trends in Android technology50 minutesSasa Sekulic
72
2015/11/30 20:22:43Android Clean Architecture for Dummies In Detail- 対象: Clean Architecture/MVPフレームワークに興味がある人。Androidアプリを綺麗にしたいと思ってるひと

- 概要:
保守性の高く、Android Frameworkが整理され、綺麗なソースコード上で仕事したい!と我々は常に思ってます。そのためのフレームワークです。

Android版では昨今Android Clean Architectureの存在感が高まっていると思います。その証拠に日本語・英語を問わず、サマリー(What/Why)や公開コードをよく目にします。

しかし、まだ浸透はしてないように思えます。なぜでしょう?理由の一つとしては、Architecureの概要から、実際のコードに落とし込むためのチュートリアル(How)が少ないからではないでしょうか。

私自身でも参考にアプリを作成しましたが、実装に落とし込むのは非常に骨が折れる仕事でした。何回か心が折れました。しかし一通り実装が終わったあとに見返すと、非常に効果的なArchitectureであることがわかりました。

従って、ぜひ本Architecureを使っていただきたく、そのために最初の敷居を下げるため、ステップばいステップで説明させて頂きたいと思っています。

- 具体的な内容
- ListViewとFabしかないアプリを実装します
- 本アプリはFabを押すと、APIにリクエストを投げ、その結果をListViewに表示するシンプルなアプリです。
- 画面作成時にどうファイルを分けるか
- Fab押下時にどうリクエストを生成して投げるのか
- レスポンス受信時にどうデータに反映させ、画面を更新するのか

といった形で、実際のアプリの動作を追った実装方法についてお話しさせて頂きたいと思います。
その他(Others)Architecture30分@kengoscal
73
2015/11/30 20:24:48Robolectricを駆使したレガシーコード改善●概要
テストの無いプロダクトコードに後からテストを追加する「レガシーコード改善」で苦労していまんか?

Android Studioのリファクタ機能を活用することで、レガシーコードにユニットテストを追加することは可能ですが、便利なテストライブラリに頼らないままでは、どうしてもテストコードが複雑になってしまいます。
その結果、レガシーコード改善は、エンジニアの精神力をすり減らす辛い作業になってしまい、「いつかやらなければならない」と思ってはいても、なかなか手を付けたくないトピックの1つになっているのではないでしょうか。

Android Studioのリファクタ機能に加えて、モックライブラリMockito・Android向けテストライブラリRobolectricを活用することで、レガシーコード改善の負担を大きく減らすことができます。

この発表では、Androidアプリのレガシーコードに対して、Robolectric・Mockito・Android Studioのリファクタ機能を駆使してユニットテストを書いていくテクニックを、開発の現場で有りがちなコード例を元に、実演を交じえて説明します。

●対象者
- Android中級者〜
- Androidアプリを作ることはできるが、ユニットテスト作成まで気が回らない方
- ユニットテストが書かれていないAndroidアプリにテストを追加しようとしたが、うまくいかず諦めてしまった方

●話す内容

- RobolectricやMockitoの概要
- イベントリスナをテストする
- HTTP通信をともなうメソッドをテストする
- データベースにアクセスするメソッドをテストする
- Activity内に定義されているメソッドをテストする場合の注意点

●3つの観点について

- Android specific:
開発の現場で有りがちな、Androidアプリのコード例を元に、レガシーコード改善のテクニックを説明します。

- Expertise:
一般的なレガシーコード改善手法は、書籍「レガシーコード改善ガイド」をはじめとして、沢山の情報がありますが、Androidアプリを対象にした情報はとても少ないのが現状です。
特に、Robolectric活用を前提としたレガシーコード改善テクニックについては、ほとんど情報がありません。

- Innovation:
MockitoとRobolectricを活用することで、レガシーコードへのユニットテスト追加作業の負担を、大きく軽減することができます。
メンテナンス (Quality and Sustainability)50分
@sumio_tym (TOYAMA Sumio)
74
2015/11/30 20:39:28Androidで電子工作を始めようAndroidにはBluetoothやUSBなどを使ってハードウェアを制御する仕組みが準備されています。また最近ではArduinoに代表される安価で手軽に電子工作に使えるマイコンが容易に手に入るようになりました。それらを使って電子工作で作ったものに繋げば、ラジコンやロボットといったものを作ることができます。
AndroidのArduinoを組み合わせることのメリットはJavaと簡単なC++言語のようなものだけで完結できることで、Android経験者には学習が容易というところがあります。またマイコンだけで実装するには大変な顔認識や画像処理も、この組み合わせならAndroidでOpenCVを使えば容易に行なえます。
本発表では実際にMaker Faireなどに出展したロボット制作の経験を元に、AndroidとArduinoを用いた電子工作について、どういったことができるか、どういったところから始めたらよいかを電子工作の初心者向けにお話致します。

【対象者】
AndroidとArduinoで電子工作を始めたい人
ハードウェア (Hardware)30分住友孝郎
75
2015/11/30 20:40:13初めてのAndroidStudioプラグイン開発【概要】
Android開発をしている人にとっては、ご飯を食べる時のお箸のように必ず使うAndroidStudio。
すでにAndroid開発をもっと便利にしてくれるプラグインがたくさんありますが、
自分に取ってあったら嬉しい・ほしいと思ったプラグインがまだ存在しないこともしばしばあると思います。
そして自分でプラグイン開発をしようと思っても、中々情報がなかったりして途中で挫折するということもあるのではないでしょうか。
そこで今回は私がほしいと思ったプラグインを実際に作る過程でつまづいたことなどを発表したいと思います。
開発環境・ツール(Productivity and Tooling)30分futabooo
76
2015/11/30 20:46:04生まれ変わったUI Automatorを使いこなす●概要
他人が署名したアプリもテストできる貴重なテストツール「UI Automator」は、Android Testing Support Libraryの一部として、2015年3月に新しく生まれかわりました(UI Automator 2)。
UI Automator 2では、Android Studioとの相性が良くなったのに加え、利用できるAPIも倍増しました。

しかしながら、公式ドキュメントの記述量が少ないこともあり、UI Automator 2が提供する機能の全貌がなかなか見えません。特に、UiObjectとUiObject2という、ほぼ同じ機能を提供するクラスが2つ併存していることが、わかりにくさに拍車を掛けています。

この発表では、自身がUI Automator 2を使ってみた経験や、UI Automator 2の実装コードを読んだ内容にもとづいて、以下のような疑問を解決します。

- 新しく導入されたUiObject2はUiObjectと何が違うのか?
- 古いUiObjectは使わない方が良いのか?
- UI Automator 2になって新しくできるようになったことは何か?
- UI Automator 2の使いどころはどこか?
- UI Automator 2を使ってテストを書くときに注意すべき点は何か?

●対象者
- Android中級者〜
- AndroidのInstrumentation Testを使ってみたことのある方
- Espressoを活用して自動テストを書いているが、さらにテストの幅を広めたい方

●3つの観点について

- Android specific:
Android標準のテストツールであるUI Automator 2についての内容です。

- Expertise:
UI Automator 2について、簡単なサンプルについての情報はいくつか公開されていますが、上記の疑問に答えるようなものはほとんど見付かりません。
※自身がABC 2015 Summerで発表したスライド[1]は上記疑問に答えるものですが、本発表は、それをさらに深堀りし、新たに得られた知見を加えたものとなります。

[1]「テスト自動化ツールUI Automator 2.0で変わったこと」https://speakerdeck.com/sumio/notable-changes-in-ui-automator-2-dot-0

- Innovation:
UI Automator 2を使ったテストの書き方を深く理解することで、他人が署名したアプリと連携するようなUIテストの自動化に対する心理的ハードルを下げることができます。
メンテナンス (Quality and Sustainability)30分
@sumio_tym (TOYAMA Sumio)
77
2015/11/30 21:34:00最速でリリースするためのAndroidアプリデザインデザイナーとエンジニアの間でのやりとりに効率の悪さを感じているデザイナー/エンジニアの方は多いのではないでしょうか? 今夏にリリースしたアプリ「Sync」http://sync.wantedly.com の開発では、デザイナーもコードを書きながら、最速で質の高いアプリのリリースを目ざしました。その事例を中心に、より効率のよい連携のためにデザイナーはどうするするべきか?お伝えできればと思います。

## トピック
- デザイナーはコードを書くべきか?
- Matelial Designを使って効率アップ
- style・themeとデザイン
- エンジニアからデザイナーに教えて欲しいこと
など

## 対象
- デザイナーとのやりとりをもっと効率よくしたいエンジニア
- デザインの再現度を上げるのに苦労しているデザイナー
- デザイナーがアプリの開発で考えていることを知りたいエンジニア
UI・デザイン (UI and Design)30分青山 直樹
78
2015/11/30 21:39:455 年続く 「はてなブックマーク」 アプリを継続開発する技術対象者 : 全ての Android アプリ開発者; 特に 1 年以上前に作られた Android アプリの複数人での開発に関わっている人

Android アプリの開発・運用を長く続けていくための技術や、長く開発を続けていると出会う問題の解決策について、2011 年 2 月に最初のバージョンをリリースした 「はてなブックマーク」 Android アプリの開発を例に話します。

まず、継続的な開発・リリースに欠かせない CI について、社内で採用している Jenkins 上での自動ビルドや自動テスト、チーム内リリースの仕組みや GitHub Enterprise との連携について説明します。 単純に手法を説明するのではなく、ビルドシステムである Gradle の活用に重点を置いて話をしますので、Jenkins や GitHub Enterprise を採用していない現場でも参考になるでしょう。

また、チーム内での開発者同士の連携上の工夫を紹介します。 例えば、ビルドシステムの production flavor で preview 版を定義し、小さな機能改善と大きな機能追加・リファクタリングをチーム内で同時に進めながら、ブランチ間でのコンフリクトの発生を小さくするというコーディング上の工夫についてや、リファクタリングと機能の追加のコードレビューの依頼を明確に分けるなどの開発フロー上の工夫について話します。 Android アプリ開発に限らない話も出てきますが、長くアプリ開発を行っているとリファクタリング等することも多くなりますので、このような話も重要であります。

最後に、機能の追加や挙動の変更をしやすくする設計についてやそれを実際に実装したモジュールの紹介、古いライブラリや非推奨になった API を徐々に置き換えていく方法など、古いコードを書き直す際や、長く使われるであろうコードを書く際に実際に実践している手法を紹介します。
メンテナンス (Quality and Sustainability)30分
信岡 裕也 (@nobuoka)
79
2015/11/30 21:55:48明日、敗訴しないためのセキュアコーディング対象者: Androidアプリ開発者(特に受託開発してる方)

"被告は,原告に対し,2262万3697円及びこれに対する平成23年10月15
日から支払済みまで年6分の割合による金員を支払え。"

上記は、顧客のクレジットカード情報流出の原因となった受注システム設計・製作・保守の受託業者(被告)に対する、その受注システムを利用したECサイト運営会社(原告)による損害賠償責任を肯定した、東京地方裁判所の判決文となります。

裁判所は受託側が一般的な攻撃の対策をする義務を怠ったとして、債務不履行であるとの判断をしたとのことですが、Androidアプリでも同様の事象が発生する可能性がありますので、受託開発する場合は気をつけなければいけません。

本セッションでは同じ悲劇を繰り返さないために、Androidアプリにおける一般的なリスクの紹介と、リスクにつながる脆弱性を作り込まないセキュアコーディング方法について話したいと思います。もちろんSQLインジェクション対策についてもお話しする予定です。


引用元: http://www.softic.or.jp/semi/2014/5_141113/op.pdf
メンテナンス (Quality and Sustainability)30分@kengoscal
80
2015/11/30 21:55:49liftとcomposeから始めるRxJava内部実装入門対象: RxJava初心者-RxJava中級者
概要: RxJavaの入門記事はインターネットに溢れていますが、一歩踏み込んだ解説というものはなかなかありません。本セッションでは、もう一歩便利に使いこなすには必須の機能である、liftとcomposeという機能に焦点を絞り紹介します。やや複雑で躓きやすい部分なので、それぞれの機能を例(liftならmap, composeならrxlifecycleあたり)をふまえて解説し、それぞれの使い方について紹介します。
話す内容
* 自己紹介(2min)
* Rxjavaについて(5min)
* Rxjava, Rxandroidについて
* 今回のスライドを理解するための基礎知識
* liftについて
* liftとはなにか
* liftはどこで使われているのか
* OperatorMapとはなにか
* subscribeOnとobverveOnはどう実装されているのか
* composeについて
* composeとはなにか
* composeはどこで使われているのか
* composeとflatmapのちがい
* rxlifecycleはどのようにして実装されているのか
* 終わりに
* まとめ
その他(Others)ライブラリ30分kazy
81
2015/11/30 21:57:31明日から使えるRxjava頻出パターンcookpadは、RxJavaを導入している国内では数少ない企業の一つです。
本セッションでは、実際のいくつかの社内アプリのソースコードからRxjavaが使われている箇所を調べあげ、
頻出設計のパターンを幾つかご紹介しようと思っています。
実際の利用シーンをご紹介することで、RxJava導入のイメージを明確にして頂けると幸いです。

対象者:
* RxJava入門者
* RxJavaを業務に導入したいけどちょっと戸惑っている人

話す内容(予定)

* 自己紹介(2min)
* Rxjavaについて(5min)
* Rxjava, Rxandroidについて
* 今回のスライドを理解するための基礎知識
* observable, subscriber, subject, subscriptionなどの紹介
* 頻出パターンを4つの紹介(15min) [恐らく紹介するパターンは変更します]
* 利用するサンプルweb_apiの説明
* 非同期-直列処理(flatMap)
* 非同期-並列処理(combineLatist)
* combineLatistとsubjectの利用したパターン
* 少し複雑な非同期-直列処理(Pair, Tuple, Observable#just)
* 気をつけたい点(5min)
* Observableをどこに置くのが正解か..
* trello/rxLifecycle と AndroidSuvscriptionの利用について
* unitテストどうしてるの
* 終わりに
その他(Others)ライブラリ30分kazy
82
2015/11/30 22:41:23Dagger2とRealmを利用したモダンな開発Androidには通常のJVMアプリケーションにはないActivityやFragmentといった独自の世界観があるため、Androidの持つ特性を深く考えず実装を行えば、すぐさま複雑なコードが出来上がってしまいます。

また近年ではアプリ開発の需要が増し、さらにその規模も大きくなっています。機能が増え、コードは複雑になりがちです。

この部分を曖昧にし、開発を続けアプリケーションが肥大化していけば、複雑なコードを運用して行かなければならなくなるリスクが高まり、機能追加も難しい環境になってしまいます。

複雑なコードを生み出さないためには、依存性を排除し、テスタブルなコードを書くのが鉄則です。それに加えてActivityの再生成など、Androidフレームワークの挙動にうまく対応する必要があります。

この課題に対して、自力で解決することも出来なくはありません。しかし幸いな事に、2015年現在においては、Androidで利用可能な有益なライブラリが数多く用意されています。我々は様々なライブラリを精査し、その結果「Dagger2」「Realm」を組み合わせることで、フレームワークとうまく調和し、堅牢で、依存性を可能な限り排除し、テスタブルなプロダクトの開発方法を考案しました。

アプリ開発においてもう一つ忘れてはならないのが、サーバサイドとの兼ね合いです。特にサーバサイドをすべて新たに作る時、常にAPIの設計がクライアントアプリに先行し実装されるとは限りません。

この場合、クライアントアプリ側で作業を止めるというのは考えられず、何かしらの策を講じる必要があります。

そこで我々はstubサーバを用意し、Web側開発とは独立した仮のエンドポイントを用意。非常に高速な開発環境を実現することができました。

本セッションの内容が、少しでもみなさまのお役に立てたら幸いかと思います。
Android の最新動向 (Trends in Android technology)30分北村 涼
83
2015/11/30 22:57:15AWS Device Farmを用いた性能測定とベンチマークの不正検出# 話すこと

AWS Device Farmの使い方・利点・欠点
Android NDKを用いたベンチマークプログラムの移植
デバイスごとに異なる最適な時間計測の方法
ベンチマークの不正検出

# 概要

ベンチマークは、アプリ、OS、デバイスの性能を知るための欠かせない手段です。Android用にもAnTuTuなど著名なベンチマークが数多くあり、それらのスコアはデバイスの評判や売り上げに大きく影響を与えていることでしょう。我々は、あまたあるベンチマーク間でスコアの関係を見出し、それによって、よりよいベンチマークを設計する研究を進めています。
この研究では、AWS Device Farmが活躍しています。これは、Amazon Web Services社が2015年7月に発表したサービスで、ウェブブラウザ越しに、アップロードしたアプリを数十種類ものAndroid端末で実行できるというものです。多様なデバイスでベンチマークを実行することで、デバイス性能の要素(演算、入出力、…)とベンチマークスコアの関係が浮かび上がってくるのです。
ベンチマークプログラムの多くはC言語といったネイティブコード言語で書かれています。それらをAndroid端末で実行するために、我々は、Android NDK (Native Development Kit) を用いてそれらをAndroid端末に移植し、時間計測のコードを加えました。時刻の取得方法は何通りもあり、もっとも精度の高い方法はデバイスによって異なります。我々はデバイスごとの最適な方法を見つけ、用いています。
こうして得たベンチマークスコアを分析したところ、一部のAndroid端末に限って、あるベンチマークアプリのスコアに不可解な点が見られました。これは、ベンチマークブースター [1]、つまり不正の可能性を示唆しています。これまでのブースターはアプリ名に基いてベンチマーク対策を行って高いスコアを出します [1]。そのため、アプリ名を変更することでスコアが変化するので、検出は容易でした。しかし今後のブースターは、より巧妙に状況を認識し、容易には検出されないものとなっていくでしょう(そう!フォルクスワーゲン社の排ガス不正プログラムのように!)。そうしたブースターがすでに存在するかもしれません。しかし我々の手法はスコアのみに基いて不正を検出するので、巧妙なブースターも検出します。

[1] Note 3's benchmarking "adjustments" inflate scores by up to 20%, 2013年10月1日, http://arstechnica.com/gadgets/2013/10/galaxy-note-3s-benchmarking-adjustments-inflate-scores-by-up-to-20/

# 著者

又川 尚樹, 首藤 一幸 (東工大)
その他(Others)性能評価30分又川 尚樹
84
2015/11/30 22:59:08Go MobileでAndroidアプリ開発【対象】
Android 中級者 〜
Go 初級者 〜

【概要】
Go Mobileは、GoogleのGoチームがサブプロジェクトとして実装を進めている GoでAndroidやiOSのアプリを作るためのライブラリ・ツール群です。

Go Mobileで書かれたアプリは数少ないですが、Goチームが実際にIvyというアプリをリリースしています。
参考:https://play.google.com/store/apps/details?id=org.golang.ivy

また、登壇者も実際にGo Mobileで簡単なアプリを書いてリリースした経験があります。
参考:https://play.google.com/store/apps/details?id=net.hinoichi.gofun

まだ実験段階の技術ですが、今後が非常に楽しみな技術です。
Go Mobileでは、Goの豊富な標準パッケージがほとんど使えるため、HTTPサーバや画像処理など非常に幅広い処理を簡単に書くことができます。
また、Goで書かれた多くのサードパーティライブラリも使えます。例えば、goproxyを使えば、Androidアプリ上にプロキシサーバを簡単に立てることができます。

日本語の情報はまだ少ないですが、登壇者がGo Mobileのソースコードやドキュメント、海外のカンファレンスの発表資料などから調べた内容についてまとめ、何ができるのか、どうやって実装するのかについてGo初心者でも分かるように説明します。

例えば、Go Mobileでは以下の2つの開発方法がありますが、それぞれの概要を説明し、それぞれどのような利点があり、どう使えるのかという話をする予定です。

■ネイティブアプリ
すべてGoで書く方法です。
UIもすべてGoで書くため、ゲームなどの開発に向いています。
参考:https://github.com/golang/go/wiki/Mobile#native-applications

■SDKアプリ
JavaからJNI経由でGoで書かれたSDKを呼び出す方法です。
Goの強みを活かした部分はGoで書き、AndroidのAPIを呼び出す部分はJavaで書くことを想定しています。
参考:https://github.com/golang/go/wiki/Mobile#sdk-applications-and-generating-bindings

また、Goはクロスコンパイルができるため、Linux/ARM向けでビルドすれば、簡単にadb shell上で動くコマンドを作ることができます。このような、普段のAndroid アプリ開発で使えるGoを使ったTIPSについても紹介できればと思います。

なお、Android開発者向けのお話をする予定ですので、Goについてはあまり知らなくても問題ありません。

【参考】
Go Mobile:https://github.com/golang/mobile
GoだけでAndroidアプリを作る(登壇者の記事):http://klabgames.tech.blog.jp.klab.com/archives/1034818110.html

【登壇者について】
Go Conference運営をやっております。Go歴4〜5年ほどです。
業務では、モバイルオンラインゲーム(スマホのゲーム)開発のクライアントサイドを担当しています。
開発環境・ツール(Productivity and Tooling)50分tenntenn
85
2015/11/30 22:59:48Robotium を使った UI テスト■概要
Robotium を使った Android アプリの UI テスト自動化の導入事例・運用について紹介します。

UI テストは、ユニットテストだけカバーしきれない UI 操作や通信結果の判定も可能にし、品質担保に大きく貢献します。
しかしながら、色んな端末上で期待通りに動作する UI テストを記述するためにはコツが必要です。
本セッションでは、テストを記述するためのノウハウや、テスト実行中に撮影したスクリーンショットの活用方法などを紹介します。

■対象者
初級〜中級者
メンテナンス (Quality and Sustainability)30分辰濱健一
86
2015/11/30 23:01:51Androidの省電力について考える対象者:中級者(単に作るだけのステップを越え、よりユーザのことを考えていこうという段階に達している方)

概要:
Androidではこれまでメーカー独自なものも含めて様々な省電力のための機能が導入されてきました。Job SchedulerやSensor BatchingといったAndroid全体に導入されたものもあれば、メーカー独自の省電力機能もありました。また省電力化するための設計指針のノウハウもあります。

それらの歴史を踏まえつつ、Android 6.0で導入された新しい省電力機能であるDozeモードやApp Standbyについて紹介します。

またどうしてもそれらの省電力による制限が困る方のために、回避・緩和するための方法についても説明します。
Android の最新動向 (Trends in Android technology)30分中西 良明
87
2015/11/30 23:20:53Maintainable Android with Model-View-ViewModelSquare社はmortar/flowでMVP(Model-View-Presenter)パターンの導入とFragment機能の再実装を行いメンテナンス性を改善しましたが、boilerplateやライブラリ学習コスト、非標準といった課題がありました。

Android公式の機能であるAndroid Data BindingによるModel-View-ViewModelパターンを使い、非同期処理と画面回転のようなActivity/Fragmentライフサイクルがらみのトラブルの削減、テスタビリティの向上をシンプルな実装で実現する方法について話します。

対象者:背景(Fat-Activity/Fragmentとテスタビリティ、ライフサイクル問題)を少しの説明で理解できる中級者以上
(RxJavaのコードが現れるかもしれません)
メンテナンス (Quality and Sustainability)30分ypresto
88
2015/11/30 23:28:13Brillo入門【概要】
Googleが開発者向けイベントGoogle I/O 2015で発表したIoT向けOS、Brilloについてお話します。Brilloは2015年秋にオープンソース化され、開発者が自身でソースコードを取得・ビルドすることが可能になりました。本セッションではBrilloをビルドし、Intel製のボード「edison」に乗せて動かしてみた経験を元に、ビルドや動作確認でのハマりポイント、Brilloで簡単なプログラムを動かす方法についてお話いたします。

【対象】
・Brilloの動かし方やBrilloで何ができるのかに興味のある人
・IoT開発に興味のある人
ハードウェア (Hardware)30分@kassy_kz
89
2015/11/30 23:31:40Realmの取扱説明書[対象]
中級者以上で、実際に実用的なアプリを現在書いている人

[発表の内容]
おそらくDroidKaigiの頃までにはリリースされているであろうRealm Java 1.0の提供する機能と制限、Realmのパフォーマンスを生かしつつも制約にハマらないためのベストプラクティス、Realmの今後の方向性について中の人として技術者のためになる情報をお伝えしたいと思います。

- Realmの機能の紹介
- Realmが持つ制約
- 罠にハマらないためのベストプラクティス
- パフォーマンスを生かすためのベストプラクティス

データベースというとどうしても既存のリレーショナルデータベースの考え方にとらわれてしまいがちになりますが、Realmはリレーショナルデータベースとは異なります。さまざまなベストプラクティスを紹介しつつ、Realmとリレーショナルデータベースの違いを理解し、パフォーマンスの良いアプリ設計が行えるようになることを目指します。

Sienaが近い内容で応募しているので、Sianaのプロポーザルが採択されるのであれば基本的な部分は省いてベストプラクティスに重点を置きつつ今後Realmをどのように発展させていこうとしているかという話をしたいと思います。
Android の最新動向 (Trends in Android technology)50分山﨑 誠(@zaki50)
90
2015/11/30 23:48:48Windows環境での効率的なアプリ開発手法▪️Windows環境での効率的なアプリ開発手法
○【概要】
最先端のAndroidアプリ開発の現場では開発PCにMacを利用されていることが多いと思います。
勉強会などでMacを持ち込む開発者が多く見受けられたりするが、実際の開発現場ではまだまだWindows環境で開発している開発者も多くいるとお聞きします。
インターネット上のブログやqiitaやstackoverflowに投稿される情報も前者のMacを利用している人の情報が多く、Windows UserにとってAndroidアプリ開発の情報が足りていない状況だと感じています。そのようなWindows UserのAndroidアプリ開発時のつまづきやすい点や難しいポイントを紹介することにより、ハマリやすいポイントを回避できたり、開発効率を高めたり、WindowsでもMac相当な開発ができたり、Macではできないことができたりという事例をご紹介します。

○【目次案】
・Android SDK のダウンロード、SDK ManagerのダウンロードとPath設定などの環境構築
・Android Studio インストール時のポイント
・Android端末のドライバ設定のベストプラクティス
・Android Emulator活用時の設定方法
・Git の利用方法。Git for windows, sourceTree(GUI), GitHub Desktop, Cygwin, sshやHTTPSなどの活用方法
・Android Studio 向けキーボードカスタマイズ(Caps-Ctrl, US配列、追加ショートカット設定)
・github, bitbucket などの 利用時のポイント
・apktools, dex to javaなどの解析ツール活用方法
・Windows特有の問題への対処方法
開発環境・ツール(Productivity and Tooling)30分tarotaro
91
2015/11/30 23:50:02TDDでカバレッジ100%を目指したアプリ開発の実例紹介▪️TDD(Test Driven Development)でカバレッジ100%を目指したアプリ開発の実例紹介

○【概要】
AndroidTestCase や espresso や JUnit などのUI Test Framework の利用方法の紹介する情報はたくさんありますが、実際のアプリ開発に活用されている実例の情報が少なく、いざ自分のアプリ開発に適用しようとすると難しく感じることがあります。
そのため本講演では、一からのアプリ開発をTDD(Test Driven Development)を採用することによって強制的にUIテストを実装しなければならない環境を設定し、実際のアプリ開発に即したUIテストの実装方法を学んでいくことができます。実装を進めていきながら適時コードカバレッジの向上を確認しながら実装を進めていけるような実例を紹介します。

○【対象者】
・UIテストを書いてみたいがどこから始めていいかわからない方々
・UIテストを書こうとして挫折してしまった方々
・Androidアプリ開発でTDDに挑戦してみたい方々
メンテナンス (Quality and Sustainability)30分tarotaro
92
2015/11/30 23:54:56僕がテスト書け書けおじさんになった経緯とその過程でやったこと【概要】
業務でAndroidアプリ開発を行っているとどうしても納期を優先してしまい、テストコードを後回しにしがちです。そもそも適切にテストコードを書くためにはテスタビリティの高い設計になっている必要がありますが、納期を優先するあまりに設計が疎かになってしまうことも多く、後からテストコードを書こうと思っても思うように書けないという状態に陥ってしまいます。一度このような状態に陥るとその後の開発にも大きな影響が生じます。テストコードがなくても気合でメンテナンスは可能ですが、アプリの機能が増えてくると気合でのメンテナンスは困難になってきます。本発表では、とあるプロジェクトでの例をもとに、テストコードがまったくなく気合でメンテナンスしている状態からどのようにテスタビリティの高い設計に変更し、どのようなテストフレームワークを導入し、どのようにチーム全員でテストを書く文化を作ったのかということを話したいと思います。

Android specific:
実際のAndroidアプリ開発プロジェクトでの例をもとにどのようにテストを導入したのかという点

Expertise:
新規アプリ開発でテストを導入するという事例はよく聞きますが、テストコードが一切ない既存アプリにどのようにテストを導入するのかということはあまり知られていない点

Innovation:
テストコードのない既存アプリにテストを導入するためには既存コードとの共存であったり、影響範囲の考慮であったりと新規アプリへのテスト導入よりもハードルの高いものである点

【対象者】
・Androidアプリ開発中級者
・機能開発は一通り出来るが、テストコードをほとんど書いたことがない人
・所属プロジェクトにテストコードが一切なく辛い人

【発表内容】
・テストコードがないとどのような弊害で出るのか
・テスト手法、テストフレームワークの解説
・テスタビリティの高い設計とは
・テスタビリティの低い設計から高い設計に変更するためにやったこと
・チーム全員がテストを書く文化を作るためにやったこと
・テスト書け書けおじさんのその後
メンテナンス (Quality and Sustainability)50分yuyakaido
93
2015/11/30 23:56:58お前にDIしてやろうか# 概要
リリースから一年以上立つアプリにDIをを適用していく話をします(途中
基本はMVCで作られていr既存プロジェクトに、Daggar2を導入していく上での知見をお話します。

# 話すこと
- なぜ1年運用したプロジェクトを書き換えようと思ったのか
- 書き換えることによって得られるメリット・デメリット
- 今後の方向性
Android の最新動向 (Trends in Android technology)30分futabooo
94
2015/12/01 0:01:10Android Lintで正しさを学ぼう静的解析ツール・Android Lintは、むやみにビルドを失敗させる悪役と思われがちですが、実はGoogleが用意してくれたベストプラクティスの宝庫です。
本セッションでは、Android Lintが持つ200件以上の膨大なルールを厳選して、初学者が陥りがちなものを中心に紹介していきます。

何故、それをやってはいけないのか。どう直せばよいのか。直すと何が嬉しいのか。
一緒に確認しながらベストプラクティスを学ぶことで、初学者から中級者への階段を登り始めましょう。

■ 対象者
* まだAndroidプログラミングのベストプラクティスが分からない初学者
* Androidアプリの品質を表す指標がほしい品質担当者

■ 話す内容

* 初学者がやりがちなミス
- LinearLayoutに並べたビューが表示されないのは何故?
- FragmentTransactionのcommit()を呼び忘れていませんか?
- SharedPreferenceのcommit()を呼び忘れていませんか?
- Toastのshow()を呼び忘れていませんか?
- メモリ喰いなやつらのrecycle()を呼び忘れていませんか?
- OKボタンを左に置いてもいいのは小学生までですよ?
- ユーザーが見るテキストをレイアウトに直書きした・・・?
* もっと上を目指す人のために
- そのContentProvider、丸見えですよ?
- EditTextにinputTypeやhintを指定してありますか?
- アイコンの色や大きさ、それでいいですか?
- 同じアイコンが別名で複数ありますけど無駄じゃないですか?
- その三点リーダ(...)、まさかピリオドで書いてないですよね?

(内容は変更する場合があります)
開発環境・ツール(Productivity and Tooling)50分中川幸哉(@Nkzn)
95
2015/12/01 0:05:42How to Use Design Support LibraryHow to Use Design Support Library

■ 概要
Google I/O 2014で発表されたMaterial Designはすでに様々なアプリに導入され、当たり前のものとなりました。
Design Support Libraryは長らく提供されていなかった、Floating Action ButtonなどのMaterial Designのコンポーネントを提供してくれるライブラリです。
このライブラリの登場で、Material Designはより身近なものとなりました。
この発表では、Material Designの説明を交えながら、Design Support Libraryの使い方を紹介します。

■ 主な内容
- Material Design おさらい
- Design Support Library各コンポーネント紹介
- 導入時のポイントなど

■ 対象者
Material Design 初心者
UI・デザイン (UI and Design)30分
napplecomputer
96
97
98
99
100
Loading...
 
 
 
シート1