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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...