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
【KC3 Shinkan Fes 2024】モバイルアプリ開発 - ひなりん
Search
Hina Nakahira
May 11, 2024
0
52
【KC3 Shinkan Fes 2024】モバイルアプリ開発 - ひなりん
Hina Nakahira
May 11, 2024
Tweet
Share
More Decks by Hina Nakahira
See All by Hina Nakahira
【Otegami】「月経期間のパートナーとのすれ違いを軽減する」
hinalin
0
630
【metimo】「『似合う』を楽しもう。」
hinalin
0
560
KMPでもRetrofitっぽくAPI通信がしたい!
hinalin
0
120
Featured
See All Featured
Optimizing for Happiness
mojombo
376
70k
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Code Reviewing Like a Champion
maltzj
520
39k
Producing Creativity
orderedlist
PRO
341
39k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Ruby is Unlike a Banana
tanoku
97
11k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Transcript
モバイルアプリ開発 ユーザーのいちばん近くで生きるアプリを作る ひなりん / Hina Nakahira
ひなりん / Hina Nakahira Android アプリエンジニア コミュニティ運営 STECH NID.kt テックカンファレンス運営
DroidKaigi Kotlin Fest
ひなりん / Hina Nakahira 元フィジーク選手 5ヶ国語喋る ハッカソン愛 ポケモン愛
カスタム ROM Web iOS React Native Flutter Android KMP 高2
高3 B1 B1~ B2 B2~ B3~
本日の目標 「なんかちょっと面白そうだな」と思って 帰ってもらうこと
None
モバイルアプリとは モバイルアプリの魅力 モバイルアプリ開発の始めかた モバイルエンジニアと就活 よくある質問千本ノック もくじ
モバイルアプリとは?
スマートフォンやタブレットなどの モバイルデバイス用に特化して開発された ソフトウェアアプリケーションのこと
モバイルアプリの種類 iOS Android クロスプラットフォーム ネイティブアプリ
Apple のiOS オペレーティングシステムを 搭載したデバイス、例えばiPhone やiPad な どで動作するアプリケーションのこと。 Apple のApp Store
からダウンロードし、 インストールして使用する。 iOS
Android Google のAndroid OS を搭載しているスマ ートフォンやタブレットなどのデバイスで 動作するアプリケーション。 世界中で広く使用されており、多種多様な デバイスに対応。
クロスプラットフォームフレームワークについて
1つのコードベースで 複数のプラットフォームに対応するアプリを作成できる!
Flutter UI フレームワーク プログラミング言語: Dart Flutter SDK とVisual Studio Code
や Android Studio を使用。 公式ドキュメントが優秀。
Kotlin Multiplatform Kotlin を使用 異なるプラットフォームに共通のビジネスロジック を再利用しつつ、それぞれに最適化されたUI を提供 することができる。 Android やiOS
だけでなく、Web やデスクトップア プリケーションにも対応。
.NET MAUI C# とXAML を用いて、Windows, Android, iOS, Mac など 幅広く対応。
特に.NET やVisual Studio との連携が深く、企業レベルの アプリケーション開発に適している。
React Native JavaScript を使用してネイティブアプリを開発でき る。 Web 開発者にとっては非常に入りやすく、既存の Web 技術(React.js など)との相性も良い。
ホットリロード機能によりコードの変更が即座にア プリに反映され、開発がスムーズに。 React のエコシステムを活用でき、豊富なライブラ リやツールが利用可能
思想のちがい ReactNative JavaScriptとReactの活用 KMP ビジネスロジックの共通化が中心 .NET MAUI .NET エコシステムの統合 どれがいい、と
優劣をつけられるものではない。 みんなちがってみんないい。 flutter UI 側での共通化が中心
モバイルアプリ開発の始めかた
Mac を買う( 最重要) 統合開発環境「Xcode 」上で開発する。 私もこのくらいの時期に購入し、今もローンの支払いが続いています😇 プログラミング言語: Swift UI フレームワーク:
SwiftUI iOS
Udemy, 公式チュートリアルの活用
Android Android Studio のインストール、環境構築 ( 最難関)( 人に聞こう。私に聞いて🥹) プログラミング言語:Kotlin UI フレームワーク:Jetpack
Compose
Google 公式のJetpack Compose Codelab が至高!!!!!!
TechTrain を活用しよう TechTrain 内の教材はもちろん、 自分の手元の教材で詰まってもメンターさんに質問できる。 「挫折しないこと」が一番大切。TechTrain は最高の伴走者!!🏃♀️💨
モバイルアプリの魅力
ネイティブアプリの強み ハードウェアとの深い統合 高いパフォーマンス プラットフォーマーによる保護 総合力を養える開発
ハードウェアとの深い統合 ネイティブアプリは特定のOS 用に開発され、 そのOS が動作しているデバイスのハードウェア 機能を最大限に活用できるように設計されてい る。
ハードウェアとの深い統合 カメラ、GPS 、加速度計、ジャイロスコープな ど、デバイスの多様なセンサーやハードウェア 機能への直接的なアクセスが可能。 デバイスの全機能を活用でき、よりリッチな体 験をユーザーに提供できる。 (e.g. 位置情報を利用したサービス、AR ア
プリケーション、写真撮影やビデオ録画...)
高いパフォーマンス 直接デバイスのハードウェアリソースを利用する ため、リアクション速度が速くパフォーマンスが 高い。 これによって起動時間が短縮され、スムーズなUI と リッチなアニメーションが実現できる! 特にゲームや高度なグラフィック処理を必要とす るアプリにおいて顕著👀✨
プラットフォーマーによる保護 Apple, Google の厳格な審査プロセスを経て Store に掲載されるため、セキュリティやプライ バシーが強化されている。 また、OS 自体がセキュアな環境を提供するた め、アプリもその恩恵を受ける。
総合力を養える開発 やろうと思えば高いレイヤーから低いレイヤーまで全て自分で面倒を見れて、 他の分野にも活かせる総合力が上がる💪🔥 UI 構築などハイレイヤーの開発 Web でも使える共通知識 (e.g. API 通信)
OS の挙動やファイル保存はLinux に触れる領域 デバイスのセンサを活用するならOS, ハードウェアの知識
クロスプラットフォームアプリの強み 一つの言語、一つのコードベースで複数のプラット フォームに対応する 開発コストの低さ ハッカソンや小規模スタートアップでの採用例 が多い
モバイルアプリエンジニアと就活
就活、やりやすい!!!!!!🗣️🔊 需要はあるのにWeb よりも人口が少ない。 インターンの倍率は比較的低め
就活、やりやすい!!!!!!🗣️🔊 専門性は求められる 求人の数自体もWeb ほど多くはない 求められるレベルはWeb より易しいことが多い (わたしとその周りの人調べ)
よくある質問千本ノック
Web より学びにくいんじゃない? コミュニティが優しく活発で、 公式の学習リソースも親切なので そんなことはない。
環境構築大変なんでしょ? ここで挫折してほしくないので、 誰かと一緒にやってほしい。 うん。
Web の技術はつぶしが効くけど、モバイルは モバイルだけなんでしょ? 1 つできたらあとは同じノリでできる。 尖った技術を持つことは大事。 モバイルは専門性が高く尖りやすい! Web で尖るの大変(Web 民談)
Mac 買っといた方がいいかな? iOS アプリを作りたいなら。 「両方できたほうがいいかなぁ」くらいの気持ち ならいらないいかも。 他の誰かと作ればいいし、割となんとかなる。同 じ値段のWin 機買おう。
両方作れるし、 やっぱクロスプラットフォームだよね! これは思想の領域。 個人的には、クロスプラットフォームはネイティブを経てから やればよいと思う。 どれを書くにも宣言的UI フレームワークがあるので、 ノリで読み書きできる。 デバイスの機能を活かしたり、最適化を行ったりするには ネイティブの知識欲しい。
iOS, Android, Flutter どれがいい? 目的による。ハッカソンや期限に追われた開発、チーム 内で同じコードを触りたいならFlutter もあり。 iOS / Android
は、自分や周囲の「この人に自分のアプリ を使って欲しい」と思う人がどっちを使っているかで考 えるのもあり。 Android ならストアを通さず.apk を配布できる。
コミュニティのあたたかさ Web と比較すると人口が少ない Android, iOS といった技術とそのコミュニ ティに対してにビッグラブを持っている人 が多い ネイティブ人口の増加が切望されているた め、たくさんかわいがってもらえる☺️
💚🙌🏻
Kotlin Fest DroidKaigi iOSDC テックカンファレンスへいこう
Kotlin Fest 6/22 開催 @ 渋谷 学生 ¥1,500 ノベルティ、アフターパーティー含む 初心者向けのセッションも!
個人的メッセージ 「好きな技術で」 「作りたいものを」作ろう! やろうと思えば大抵の技術で似たものは作れる。 しょうもないものをどんどん作ろう。 これが社会的な評価にも、自分のモチベにも直結 する!!
謝辞
None
どくぴーさん大感謝🙏🏻
こまったらお気軽に相談乗ります
社会人・学生混合 Android エンジニアコミュニティ 130 名規模 学生〜シニアエンジニアまで 豊富な勉強会 通知がうるさいほど賑やか Web, iOS,
クロスプラットフォー ムのチャンネルもわいわい 困ったら有識者が優しく教えてく れる!
君もモバイルエンジニアに ならないか?
このあとの座談会でゆるーくお話しましょう〜〜!🫶🏻✨