Expo大作戰(三)--針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的局限性,開發時項目選型註意點等

来源:https://www.cnblogs.com/gdsblog/archive/2018/03/10/8538749.html
-Advertisement-
Play Games

簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...


簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網

我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732981

【之前我寫過一些列關於expo和rn入門配置的東i西,大家可以點擊這裡查看:從零學習rn開發

相關文章:

Expo大作戰(一)--什麼是expo,如何安裝expo clinet和xde,xde如何使用

Expo大作戰(二)--expo的生命周期,expo社區交流方式,expo學習必備資源,開發使用expo時關註的一些問題

Expo大作戰(三)--針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的局限性,開發時項目選型註意點等

Expo大作戰(四)--快速用expo構建一個app,expo中的關鍵術語

Expo大作戰(五)--expo中app.json 文件的配置信息

Expo大作戰(六)--expo開發模式,expo中exp命令行工具,expo中如何查看日誌log,expo中的調試方式

Expo大作戰(七)--expo如何使用Genymotion模擬器

Expo大作戰(八)--expo中的publish以及expo中的link,對link這塊東西沒有詳細看,大家可以來和我交流

接下來就開始擼碼


已經使用React Native?

本指南旨在為那些已經使用React Native的開發者提供一些關鍵概念,資源和使用Expo時遇到的差異的簡要概述。

什麼是expo?


Expo提供了一個共用的本地運行時,所以你不用編寫本地代碼,你專註於用JavaScript編寫你的React應用程式。您不必擔心iOS或Android的特定設置,甚至不必打開Xcode。 Expo擁有自己的工作流程,包括一個名為XDE的應用程式和命令行界面,使開發和部署變得輕鬆。

如果您曾升級過React Native或本地模塊,只需更改版本號,即可享受expo無縫完成此功能的功能。

Expo通過提供由團隊維護的額外的經過測試的模塊擴展了React Native平臺。這意味著你花更少的時間配置和更多的時間建立。

如果你曾經經歷過升級模塊或安裝諸如react-native-maps之類的問題,那麼當事情正常時,你會明白的。

expo還提供OTA(空中下載||熱更新)更新和推送通知服務。

如果您曾經遇到過在應用程式中發現拼寫錯誤並需要等待Apple批准更改的情況,那麼您會欣賞OTA更新 - 只要運行exp發佈,就會顯示這些更改!你也不限於文本,這也適用於圖像和配置更新等資產!

無需重新構建或重新部署您的應用到應用和Play商店。這就像Code Push,如果你以前使用過。但是有一些限制。閱讀有關這裡的人

Expo提供了一個我們稱之為清單的共用配置文件。通常,您需要更新Xcode plist或Android Studio xml文件以處理更改。例如,如果你想鎖定屏幕方向,改變你的圖標,自定義你的啟動畫面或添加/刪除許可權,你會在app.json中做一次,它將適用於兩者

您通常在Xcode / plist文件或Android studio / xml文件中執行的配置通過app.json處理。例如,如果您想要鎖定方向,更改圖標,自定義初始屏幕,添加/刪除許可權和權利(在獨立應用程式中),請為Google地圖和其他服務配置密鑰,您可以在app.json中進行設置。請參閱此處的指南

藉助expo,您可以在expo客戶端(可在App / Play商店中使用)工作的同時,與世界上任何地方的任何人分享您的應用程式。掃描二維碼,或輸入電話號碼,我們會向您發送一個鏈接,將您的應用程式立即載入到您的設備上。

無需通過iTunes連接註冊幾個外部測試人員,您可以輕鬆讓他們下載expo客戶端應用程式,並立即在手機上提供工作版本。

我們討論我們在app.json中設置的許可權,但也有Permissions Api。 app.json中的許可權旨在被Android獨立應用程式用於相機訪問,地理定位,指紋等。另一方面,許可權Api用於在運行時請求和驗證訪問許可權。它提供了一個簡單的API來詢問您的用戶推送通知,位置,相機,錄音和聯繫人。

expo如何運作?


由於您使用Javascript編寫代碼,因此我們將其捆綁在一起併在S3中提供。每當您發佈您的應用程式時,我們都會更新這些資源,然後將它們推送到您的應用程式,以便始終獲得最新版本。

在expo上開發


應用程式預設通過隧道服務從我們的exp / XDE提供服務(我們目前使用ngrok) - 這意味著您不必將設備連接到電腦,甚至不必連接到同一個房間或國家(或行星?我猜它應該從空間開始)作為開發機器,並且您仍然可以實時重新載入,使用熱模塊重新載入,啟用遠程JS調試,以及您可以通過React Native正常執行的所有事情。有一點需要註意的是,使用隧道比使用區域網地址或本地主機要慢一點,所以如果可以的話,你應該使用區域網或本地主機。看看如何在exp / XDE中配置它。

Expo將您的設備日誌傳輸到exp和XDE,因此您不需要運行adb logcat或iOS等價物 - 來自任何連接到您的應用的設備的console.log / warn /錯誤消息將自動顯示在您的exp / XDE日誌視窗。

expo不能做什麼

 

  • 有時expo不提供您可能需要的本地模塊或API的訪問許可權。在這種情況下,您可以分離並使用ExpoKit。這使您可以繼續使用Expo的基礎,但允許您創建和使用任何自定義本機模塊。
  • 閱讀更多關於分離的信息

部署到App / Play商店


當你準備好後,你可以運行exp build:ios或者exp build:android和Expo會構建你的應用並輸出一個鏈接到你需要提交的二進位文件。然後,您可以使用類似Application Loader for iOS的應用程式,或直接上傳適用於Android的APK。

如果您更願意在自己的機器上構建應用程式,則可以按照以下步驟操作。

有用的工具和資源

 

  直接從您的瀏覽器測試和分享Expo功能的最佳方式。將手機指向QR代碼,您可以在瀏覽器中創建沙箱環境,並直接在設備上進行測試。

  如果有什麼你不明白或想瞭解更多的信息,這是一個很好的開始。

  從expo團隊或社區獲得幫助的最快途徑

  Expo Client和SDK都是開源的。如果您想解決某些問題,或者想知道我們如何實現我們的本地模塊,歡迎您親自查看代碼!

Useful Commands

在expo開發時,您可以選擇使用命令行工具。以下是我們的一些朋友最喜歡的命令和工作流程:

  1. exp start -c --localhost --ios
  2. 啟動expo伺服器,清除緩存,只載入本地主機併在iOS模擬器上打開
  3. exp start --tunnel
  4. 啟動expo伺服器(不要清除緩存)併在隧道上運行expo,以便與任何人分享!
  5. exp發送2245551234
  6. 發送一個鏈接到朋友的電話號碼,以便他們可以在手機上查看我正在處理的內容

 

為什麼不用expo(Why not Expo?


expo尚未準備好用於所有應用程式。有很多情況下,目前的限制可能不適合您的項目。本文檔的目的是概述其中的一些情況,以便您最終不會在expo上構建應用程式,並且在遇到障礙時無法剋服障礙,無需分離到ExpoKit或彈出使用React Native沒有expo。我們正在計劃或積極致力於構建下列所有功能的解決方案,如果您認為缺少任何內容,請通過張貼到我們的功能請求委員會來提請我們註意。

Expo應用程式不支持後臺代碼執行(當應用程式沒有預先安裝或設備正在睡眠時運行代碼)。這意味著您不能使用後臺地理位置,在後臺播放音頻,在後臺處理推送通知等等。這是一個正在進行的工作。

Expo支持很多設備API(查看邊欄中的“SDK API參考”),但並非所有iOS和Android API都可以在Expo中使用:需要藍牙?對不起,我們還沒有建立它的支持的WebRTC?不完全的。我們不斷添加新的API,因此如果我們現在沒有您需要的東西,您可以使用ExpoKit或關註我們的博客,查看我們每月SDK更新的發佈說明。

如果你需要保持你的應用程式(包)的規模非常小,expo可能不是最好的選擇。 iOS上的expo應用大小約為25mb,Android大約為20mb。這是因為expo包括一堆API,而不管你是否使用它們 - 這可以讓你推動空氣更新(熱更新)以使用新的API,但是以二進位大小為代價。我們將在未來對此進行定製,以便您可以減小二進位文件的大小。

如果您知道您希望使用特定的推送通知服務(例如OneSignal)而不是expo的推送通知服務/ API,則您需要使用ExpoKit或React Native,而無需使用expo。

expo團隊,真誠的向我們列出了expo的局限性,以及expo的有點,我們在項目選型的時候,也需要仔細斟酌!


下一張繼續介紹,這一篇主要介紹了:針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的局限性,開發時項目選型註意點等!歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公

眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 關係資料庫 關係資料庫(Relational Database,RDB)就是基於關係模型的資料庫。關係資料庫系統是一種重要的資料庫數據模型,不但其理論成熟,而且其應用範圍較網狀和層次資料庫系統也廣得多。目前,關係型資料庫管理系統已成為當今流行的資料庫系統,各種實現方法和優化方法比較完善。關係資料庫的 ...
  • 1、創建用戶 需要先用system用戶登錄資料庫,因為system用戶具有創建其他用戶的許可權。 語法[創建用戶]: create user 用戶名 identified by 口令[即密碼]; 例子: create user dhjw identified by 123456; 語法[更改用戶]: ...
  • 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
  • 視頻剪切我意外的發現上一次的視頻壓縮的代碼能夠運行FFmpeg視頻剪切的命令,但是不能做視頻合併的命令,因為不能讀取記錄了幾個視頻的路徑的txt文件。 這裡我就說直說視頻剪切的過程,不說代碼,只說log,畢竟我也不清楚代碼往哪運行了 上一次的項目地址https://github.com/979451 ...
  • 方法一 登錄GitHub後,點擊下麵的圖 New responsitory 按鈕 或者點擊綠色按鈕 New repository,新建一個新建一個遠程倉庫(remote repository),點擊後會進入如下頁面: Repository name 庫名( 最好用英文) Description 描述 ...
  • 在Unity游戲中植入廣告是Unity 游戲產品增加收入的一種重要方式,常用的廣告有谷歌Admob,百度ssp,騰訊廣點通,unity公司的unityads等等,而使用的最多的應該屬於谷歌Admob,所以我們這裡以Google admob介紹下 在unity3d中展示廣告我選擇使用谷歌,聽說回報率比 ...
  • 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
  • 項目源碼https://github.com/979451341/FFmpegCompress 這個視頻壓縮是通過類似在mac終端上輸入FFmpeg命令來完成,意思是我們需要在Android上達到能夠執行FFmpeg命令。其實做到這一點還比較容易,這一次重在說說這壓縮過程,不是看代碼運行過程,通過l ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...