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
2021.12.18_Web開発者がアプリ開発時に知っておくとよいアレコレ
Search
Kido_engineer
December 19, 2021
0
28
2021.12.18_Web開発者がアプリ開発時に知っておくとよいアレコレ
Kido_engineer
December 19, 2021
Tweet
Share
More Decks by Kido_engineer
See All by Kido_engineer
2021.12.18_【本庄さん】要件定義書におけるシステム化要件について
kido_engineer
0
35
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Embracing the Ebb and Flow
colly
84
4.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Adopting Sorbet at Scale
ufuk
73
9.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
RailsConf 2023
tenderlove
29
940
Transcript
アプリ開発時に 知っておくとよい アレコレ 2021.12.18 きど Web開発者が
Hello!! 実務歴:約1年半 PHPをメインに開発している バックエンドエンジニア jQueryはあったものの モダンJSは実務経験なしという 経歴でしたが2021夏から数ヶ月間、 React Nativeでの開発を経験しました
Twitter : @youraccount Facebook : your_account URL : http://example.com/ さて、みなさん・・・
この場に集まっている方は Webアプリ開発/制作者が多いと思いますが、 モバイルアプリ開発に興味はありませんか…?
Twitter : @youraccount Facebook : your_account URL : http://example.com/ アプリが開発できれば
・Webサイトとアプリを繋げれる ・できることの領域を広げられる ・楽しそう そう考える方もいらっしゃるのではないでしょ うか…?
Twitter : @youraccount Facebook : your_account URL : http://example.com/ ただ、Webアプリと開発の仕方が違うことがあり
ます
Twitter : @youraccount Facebook : your_account URL : http://example.com/ React
Native中心ですが、 アプリ開発で 「最初から知っておけばよかったな」 と思える内容をギュッとまとめてお話し したいと思います!
Twitter : @youracco unt Facebook : your_accou nt URL :
http://exam ple.com/ アプリ 管理画面/一部Webview バックエンド (apiサーバー) モノ 状態管理 ユーザー 管理者 DB (MySQL) システム構成
React Nativeについて ・Meta(旧Facebook)が開発 ・コード1つでiOSとAndroidの両方の アプリ開発ができる ・クロスプラットフォーム ・JavaScript(Type Script)で記述するため、 Web開発ライクに開発できるのが特長
開発について アプリ開発のゴール:「アーカイブファイル」をアップさせる ・iOSは「ipaファイル」 - iOS Application Archive ・Apple Developerで公開する ・Androidは「Apkファイル」
- Android Application Package ・Google Playで公開する
エディターについて ・XcodeとAndroid Studioを起動させる ・「ビルド」してシミュレーターを表示する時に使う ・コードは書かないが、シミュレーター起動やビルド設定、 ビルドなどのために使う(GUIで操作ができる) ・実機にビルドして動かすことも可能です(有線接続) ・VS Codeを使ってコーディング
iOSは証明書が必要 ・iOSは開発/公開のため証明書が別途必要 ・Bundle Identifier →アプリケーションを識別するため ・Provisioning Profile →作成したアプリに対してアプリ 開発者が署名するために 必要なデータ
開発について(STGまで) ・開発環境、検証環境(ステージング)では両OSともに Firebaseを 使っていました ・管理はOSごとに別となりますが、(事前登録していれば) 審査なしにipa/apkファイルをアップして送信先を指定するだけで テスト配信できるため、(本番公開と比べると)お手軽です ※「配信」ともいう人もいれば、「配布」という人もいました(Distribution)
開発について(本番環境) ・前述の通り、iOSはApple Developer、AndroidはGoogle Playで公開します ・ファイルをアーカイブします ・それぞれにあげたら即公開される訳ではないです ・「本番環境でのテスト段階」が存在します →iOSは「Test Flight 」、Androidは「内部テスト」
「クローズドテスト」「オープンテスト」があります ・両OSとも審査の時間がかかります 特にiOSは審査に一晩位かかります(Androidは20分くらいでした) →クライアントから「すぐにアップして」の要求があっても対応ができないです ※iOSは「輸出コンプライアンス」の提出があります
開発流れ(まとめ) 1. シミュレータor実機にビルドする 2. 開発 3. Git(PR&レビュー&マージ) 4. アーカイブして確認環境にあげてテスト配信 5.
アーカイブして本番環境のテスト段階にあげてテスト配信 6. 本番環境で申請し審査 7. 公開 →ビルドやアーカイブがあるので「ちょっとの手直し」が大変です😅
開発した所感 ・環境構築がWebアプリより複雑(慣れの問題?) ・キャッシュ等をクリアしないとビルドがすぐにこける ・React Nativeは日本語情報が少なく基本英語だと思っておく ・学習コストは低くはない(特にRedux) ・JSに精通している人が多いチームには良いと思う ・JS強くない&クライアント許容ならFlutterでもいいのでは? ・余談: 使えれば暦浅でもフリーランスにはなりやすい?
ありがとうございました Twitter : @youraccount Facebook : your_account URL : http://example.com/
質疑応答 わかる範囲で お答えします!
Metro Bundlerについて ・ビルドするときに起動される ・Metro Bundlerを起動することで 保存時に変更箇所を検知し 更新が自動でされ 「ホットリロード」されます
デバッグツール ・標準にあるデベロッパーツールは スタイルは実測しか見れないなど使いづらさ があります😵 非公式(React Native Debugger)のが良い 💡tips デバッグを表示するにはデバイスを振る動
作の”shake”が必要ですが、shakeの概念 を初めて知りました…