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
34
Featured
See All Featured
Embracing the Ebb and Flow
colly
84
4.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Automating Front-end Workflow
addyosmani
1366
200k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Designing the Hi-DPI Web
ddemaree
280
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Gamification - CAS2011
davidbonilla
80
5k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Building Adaptive Systems
keathley
38
2.3k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Practical Orchestrator
shlominoach
186
10k
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の概念 を初めて知りました…