📜 [專欄新文章] Solidity Weekly #15
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
真的 Dapps 怎麼做?
這裡我所謂的”真的” Dapps,是希望真能達到 decentralized apps 的目的,也就是不再需要任何網站 (https server) 來存放你的合約介面程式。也許有些人會覺得沒有必要真的完全 decentralized 吧,連 CryptoKitties 都沒做到,不是也一樣賣得嚇嚇叫!
但有多少網站連結最後都因為沒人維護而消失在 link 的另一端,有些好遊戲;也因為經營者不玩了,造成玩家所有的努力都付之一炬,不是很令人失望且有點可惜嗎?
目前我們可以利用 IPFS 來存放 html 與 js 或其他 asset 檔案,就可少去 web 伺服器永遠存在的必要性,未來 (我猜) 幾乎瀏覽器會支援某種類似 IPFS 的 proxy,就像現在支援 cache 一樣,無形中加速 IPFS 檔案的下載,至少 users 感覺會好一點。(註: 目前 IPFS 還是有點慢)
這個 Ropsten Testnet Ether 水龍頭 https://ipfs.io/…/QmVAwVKys271P5EQyEfVSxm7BJDKWt42A2gHvNmx…/ 就是一個沒有用 https server 的 DApp 例子。
當然要把複雜的 Javascript 程式包到 html 裡或簡單的單檔 JS 裡需要一點技巧。但我想難不倒我們台灣的大部分的前端工程師。
shared links:
Build a simple Ethereum + InterPlanetary File System (IPFS)+ React.js DApp.
https://itnext.io/build-a-simple-ethereum-interplanetary-fi…
Ming> 本文確確實實一步ㄧ步地教你如何結合 IPFS 與 web3.js 1.0 撰寫 DApp 上傳檔案到 IPFS,並記錄的 Ethereum blockchain。(但沒介紹如何安裝 DApp 在 IPFS 上)。
PS. 另一個方法就是用 react native (Expo) + web3.js 寫成手機 app。下週 Solidity Weekly 再來分享。(如果未來每個人的手機,可以像 mp3 世界裡的 azureus p2p 方式下載 Dapps 軟體,應該也算是 decentralized 吧)
Solidity Weekly #15 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
expo react native 在 Taipei Ethereum Meetup Facebook 八卦
📜 [專欄新文章] Solidity Weekly #16
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Expo (React Native) + web3.js 1.0.x 開發手機 dApps
今天要介紹如何利用 Expo,來撰寫手機 dApp。基本上,如果想做到去中心化的 dApp,期望能將 Javascript app 能盡可能的包裹成單一檔案,用去中心化檔案儲存空間,讓手機或網頁直接下載來執行。手機版的 App,也可用 Expo 做到類似的結果,但目前 Expo 還是有點中心化;當然利用 cipherbrowser 或 status.im 等方式開發也行,只要你不怕被 vendor lock-in。
Expo 是一種 MIT license 的開放源始碼,讓 React Native 開發與部屬更為簡單,讓用戶只要先下載 iOS 或 Android 的 Expo clients。就很容易透過 exp://xxx 的 URI 來執行。因為 React Native 跟 web3.js 都是用 Javascript 語言,因此很容易整合。(註:web3.js 也不是唯一連區塊鏈的方法,只是搭配 Remix,能產生 web3 程式片段,所以比較方便)
但由於 React Native 非 100% 與 node.js 相容,因此有些 workarounds 要做,例如 node 內建 standard library 裡的 crypto (註 2),Buffer 等 React Native 就沒有,所以這裏還不是很方便。(喜歡 truffle 的人,也可參考 react-native-box 來做,但也還沒很成熟)
Mobile dApp 有個問題是,你(用戶)沒有 localhost 自己的 node 當成 web3 provider 可以連線到 Ethereum 區塊鏈。所以有幾種選擇,最簡單的就是要再相信某一個 node,這裡用 infura (與 Metamask 同一家公司),也許還要搭配其他方法,讓這 dApp 不要依賴任何 server 也能運作。但如果要用到 HDWallet,還是要用 truffle-hdwallet-provider 來當 web3 provider,也能同時避開沒有 crypto 的問題。
使用 Expo 開發畫面
註 1:直接用 React Native 開發,不容易除錯,且速度慢。所以建議程式邏輯可以考慮用 React Native for Web 在 CodeSandbox.io 先做開發和測試,最後再搬到 Expo 的 React Native 裡。(或直接在 codesandbox.io 開發 Expo 程式也行)
CodeSandbox
註 2:例如當在 Expo 的環境裡使用到 web3.eth.accounts.create() 時,會出現以下 error,但其他地方(Condsandbox)不會。
解決方法,不要用 web3 provider 改用 truffle-hdwallet-provider (在 React Native 裡要用 Promise.promisifyAll 繞過問題)
var HDWalletProvider = require("truffle-hdwallet-provider"); var mnemonic = "manage velvet tide tube object spin identify neither foot together wagon tip"; var hd = new HDWalletProvider(mnemonic, "https://mainnet.infura.io/"); web3 = new Web3(hd); Promise.promisifyAll(web3.eth); let accounts = await web3.eth.getAccountsAsync();
Solidity Weekly #16 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
expo react native 在 軟體開發學習資訊分享 Facebook 八卦
--課程已於 2020 年 9 月更新--
這堂課會教你使用 React Native 開發出目前許多 App 常用的操作模式,例如透過使用者的手機號碼發出認證碼登入(使用 Twilio API ),和透過 Facebook OAuth 認證登入,支援 iOS/Android 跨平台的地圖元件做定位,UI 動畫,Push notification,後端使用 Firebase 與 Google Cloud 做商業邏輯還有當網路斷線時的離線瀏覽,最後講師 Stephen 會帶你使用這些進階技術做出一個 Location-base 的求職 App
從這 16.5 小時的課程,你會學到
1. 使用React Native的專家級功能製作引人注目的應用程式
2. 創造令人驚訝流暢和高效的動畫
3. 使用 Expo 建立新的 React Native 應用程式
4. 理解新的 React Native 應用程式最新的瀏覽( Navigation )選項
5. 使用 Google Cloud 功能將邏輯添加到 Firebase 後端
6. 使用跨平台推送通知給你的用戶更新訊息
7. 使用 Redux Persist 處理當使用者處於離線狀態
>英文字幕:有
https://softnshare.com/react-native-advanced/
expo react native 在 Expo DAY1 --- Introduction - iT 邦幫忙 的相關結果
什麼npm install 啦、什麼Android Studio 啦、Xcode 啦,你都不用管了,你只需要打開Expo App,QRCode 一掃,新人立刻見證到React Native Write once Running anywhere 的 ... ... <看更多>
expo react native 在 React Native 該不該使用Expo - Andy Tai 的相關結果
Expo 是一個React Native 的開發工具,應該也可以說是在React Native 上再建立一層框架,解決了許多開發上的麻煩以及增加了許多API,但也有一些使用上 ... ... <看更多>
expo react native 在 Expo 的相關結果
Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React. ... <看更多>