Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlinで始めるAndroid開発
Search
bvlion
May 20, 2016
Technology
0
150
Kotlinで始めるAndroid開発
2016/5/20に弊社内で行われた技術交流会資料
bvlion
May 20, 2016
Tweet
Share
More Decks by bvlion
See All by bvlion
Java8のStreamとLambdaの関係
iwaisatoshi
0
140
View周りで後悔しない実装
iwaisatoshi
0
260
それは本当にRailsでないとダメですか?
iwaisatoshi
0
310
Kotlinでテストコードを書く
iwaisatoshi
1
720
Other Decks in Technology
See All in Technology
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
5
1.4k
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
460
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
190
こんなデータマートは嫌だ。どんな? / waiwai-data-meetup-202504
shuntak
5
1.7k
“パスワードレス認証への道" ユーザー認証の変遷とパスキーの関係
ritou
1
350
テキスト解析で見る PyCon APAC 2025 セッション&スピーカートレンド分析
negi111111
0
270
DETR手法の変遷と最新動向(CVPR2025)
tenten0727
2
1k
食べログが挑む!飲食店ネット予約システムで自動テスト無双して手動テストゼロを実現する戦略
hagevvashi
1
160
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
coconala_engineer
1
250
AIエージェント開発における「攻めの品質改善」と「守りの品質保証」 / 2024.04.09 GPU UNITE 新年会 2025
smiyawaki0820
0
400
CBになったのでEKSのこともっと知ってもらいたい!
daitak
1
150
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming
tomzoh
0
200
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
Speed Design
sergeychernyshev
29
880
For a Future-Friendly Web
brad_frost
176
9.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Site-Speed That Sticks
csswizardry
5
480
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
StorybookのUI Testing Handbookを読んだ
zakiyama
29
5.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Code Reviewing Like a Champion
maltzj
522
39k
Transcript
Kotlinで始めるAndroid開発
自己紹介 名前 ・岩井 大志(Iwai Satoshi) お仕事 ・SE@株式会社インタースペース ・JavaでWebの開発 個人の活動 ・Twitter
@ninjinx ・メモサイト https://bvlion-apps.appspot.com/
Kotlinって何だろう??
Kotlinとは Wikipedia では… 静的型付けのオブジェクト指向プログラミング言語 だそうです(^ω^;) JVM上でJava並みに早く動くらしいです♪(コンパイルも早いです!) Javaが互換性を保つためにできない機能を、GroovyやScalaの影響を受けつつ ジェットブレインズ社が開発、2011年7月20日にリリースされました(≧▽≦) そして今年、めでたくversion1がリリースされております!
どうしてKotlinなのか?
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
使ってみたら…
コードが減った…だと!!?
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
Kotlinのいいところ(Javaと比較した個人的見解) ・Androidでもラムダ式が使える(retlolambda不要) ・型推論が強力 ・NULL安全 ・関数型が使える ・名前付き引数や省略可能オプションが使える ・プロパティやインデクサも使える ・1つのファイルに複数のクラスが入れられる ・セミコロン不要
例えば、AndroidのボタンをJavaで書くと… Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override
public void onClick(final View view) { // 処理 TODO } }); 7行…
Kotlinはラムダ式が使えるので… val button = findViewById(R.id.button) button.setOnClickListener { view -> //
処理 TODO } 4行!!
NULL安全 Kotlinでは明示的に書かないとNullを代入できない var hoge = “hogehoge” hoge = null //
NG nullを入れたい場合は「?」をつけると可能 var hoge : String? = “hogehoge” hoge = null // OK
NULL安全の利点 ・メソッドの引数など意識的にfinalにする必要がない ・チェックが不要になる 変数がnullかも… inputStream?.close() // NPEは発生せず、処理が進む if (inputStream !=
null) { 変数nullじゃないから( `・ω・´) inputStream!!.close() // NPE発生する assert inputStream != null
関数型が使える 関数型は人によって定義が違いそうですが… fun next(n : Int) = n + 1
⇧ public int next (int n) { return n + 1; } こんな単一式関数を書くことも可能
1ファイルに複数クラスが書ける! Kotlinは「.kt」というファイルを使いますが あくまでもこれはKotlinファイルであって クラスファイルではない
こんなことができる MyDialog.kt class MyDialog() : DialogFragment() , LoaderCallbacks<String> { //
overrideして表示する処理 } class ResponseLoader(context: Context) : AsyncTaskLoader<String>(context) { // 通信処理 }
具体的な書き方など 継承 class A() : B(), C { .... メソッド
fun hoge(引数: 型, 引数: 型) : 戻り値 {... とかありますが https://sites.google.com/site/tarokotlin/ を見ればOKです(^ω^;)
と、ここまで紹介して何ですが… よく分からない状態になってしまったらJavaとも混在可能なので Javaで書いて動けば自分はOKだと思ってます(笑) いきなり全てをやらなくていい… 分かるところからKotlinを使っていく… これもある意味利点です!
まとめ ・Kotlinを使うとコード量がグッと減る ・C#やSwiftと似た部分もあるので、Javaやってる人は違う言語に手を出す架け橋にもなる ・もちろんWebサービスにも流用可能 ・分かんなくなっちゃったらJavaで書いちゃえばいい ムリはしない…でもガンバりはする…
ご清聴ありがとうございました!!