有寫一支離線APP(不需要網路),app有上架android和ios,andorid有開廣告,而ios賣出去一些。
一開始開發使用framework 7 (純javascrip、html、css),開發速度是最快的,照著官網教學做,顏色不大改、版型照用,真的很快,然後用codova包一包,就上架了,操作起來也順,介面看起來都很像ios,唯一的問題是要花時間了解fromework 7架構上,第一次使用當然很痛苦,痛點在於framework,優點在於 html、css、javascript自由。
整體開發時程:一周內肯定解決。
後來改版了,花一些時間了解ionic,發現ionic跟Framework7用法差不多,但卻可以使用ionic native跟底層溝通(不過實際上這支APP根本不用到native),硬生生加入一個底層開啟圖片的功能;ionic開發起來也是很快,因為還是html為主的方式,另外也有花時間了解react,和react不同是,一開始的jsx就一堆問題,不過這是在很早期react會發生的問題(現在已經沒有這些問題);除react外,Angular也同樣有花時間了解,那時 Angular 1 基本上也是放棄,因為太複雜、反人類… Angular 2在寶哥展示後,發現“真的“不反人類了,就決定可以用ionic;ionic開發快在Angular 2+的底層架構,實際開發中的痛苦點反而比Framework7少,畢竟有Framework7可以對照開發,只需要進行語法上的轉換,不用花心思在架構上,Angular也是可以用javascript,Framework7上的array、object可以直接照搬來使用,唯一花時間在 上廣告 和 圖片呼叫底層,有痛到。
一周內肯定解決。
ionic 2 -> ionic 3 ,基本上 印象中 1天內解決吧,處理一些不相容問題而已。
ionic 2或3 順暢度,覺得差不多,唯一碰到的是原生的元件,在中文顯示小標題時,有一點被裁到,這問題在網頁上看時是正常的,在app上看時是不正常,這令人很困擾,但也懶得再用css調整了,就是這問題成為往flutter開發前進的關鍵原因。
Flutter官方展示對我最重要的點:修改後即時更新顯示 和 Material的元件。
改版撰寫時期發現 即時更新顯示 正常情況下是沒問題,但會有失效的情況,最終還是要重新complie app,但這功能只要運作正常時,是非常好用,可以慢慢調整畫面,真的太好用了!
之前開發都是跟web相關,即使在web broswer看是正常的,套入app後還是要把所有的情況再點擊測試一次(會有網頁正常、APP不正常情況),撰寫過程中發現問題進行修正後,需要再度complie app,然後再執行再調整,重覆web模式,和原生android開發也差不多,app每次complie完再操作,再調整,再重來一次complie執行…一直循環
能即時更新這點……真的節省非常多的時間!
但!!! 這次使flutter開發卻是有始以來花費時間最久的,Dart…Flutter Framework,Widget…….開發總時間已經逼進三星期以上,現在也只不過開發80%而己。
1、圖片 要能兩指縮放,最終網上有大神有做出plug,但為了套到去,就花了一星期以上,先參考官方demo app,移值失敗,用大神才成功。好處:終於離開底層的縮放,也不是css或javascript假縮放。
2、搜尋 看了一堆demo後,官方有比較推的方式,照做,照完後,發現是有BUG的,可能官網的做法,最後的搜尋完的點選,是在同一頁,但實際肯定會nav push到新頁,回到搜尋頁後,就不能搜尋了,debug查了整整一天,試了各種方式後,放棄! 改找網路上土砲法,自己做搜尋在header,然後再參考官方控制操作,這樣終於改完了。這也是一周以上的時間。
3、文章式的顯示:多塊區域組合,這裡也是花一堆時間,ListView怎麼處理widget [] 和chrild、chrildren等等,這裡正式踢鐵版,卻更了解上述一些架構上的問題。
改版到這裡就花了三星期以上的時間,這樣開發不是一次三星期,而是下班後斷斷續續的開發,到現在還是沒開發完畢,以之前的開發經驗,接下來肯定有
1、admob
2、androdi ios 實際創建app問題 android應該最少,ios最多
真的開發的話,有時間壓力的話,ionic還是最快的,但為了app畫面精緻度,也許Flutter………
簡單來說:
getDeviceToken 方法有三:
一、ionic Native Push (https://ionicframework.com/docs/v2/native/push/)
二、ionic Native Firebase (https://ionicframework.com/docs/v2/native/firebase/)
三、cordova FCM plugin (https://github.com/fechanique/cordova-plugin-fcm)
之前試用的方式是:
http://sueboy.blogspot.tw/2017/01/ionic2-fcm-send-message-to-device-token.html
.AngularFire2 authstate.auth.getToken() is JWT token for firebase
https://github.com/driftyco/ionic/issues/6776#issuecomment-267961514
https://github.com/driftyco/ionic-app-scripts/issues/596
This problem…. just update
>> ionic info
Ionic Framework
Ionic CLI
Ionic App Lib
Ionic App Scripts
Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.1
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.1
So
1、npm update to best new
npm update -g
2、uninstall ionic
npm uninstall ionic
3、install ionic
npm install -g ionic
4、update package.js in project
npm install -g npm-check-updates
https://github.com/driftyco/ionic-cli/issues/935
just put www directory on root
https://gxiangco.gitbooks.io/m3-app-dev/content/part4/%E6%9B%B4%E6%8F%9Bicons%E5%8F%8Asplashscreen.html
1、 change resource icon.png and splash.png
2、ionic resources 3、check resource android and ios images is changed ?
4、apk
4.1、 ionic platform remove android then ionic platform add android
or
4.2、
ionic build android
copy res android and ios images to platform/android or ios inside
https://ionicframework.com/docs/v2/native/photo-viewer/
follow step just do.
Now focus
https://github.com/sarriaroman/photoviewer/issues/11
ps: declare var cordova: any;
ps2: cordova plugin add cordova-plugin-file
www/assets/img is ionic2 now version, maybe future change, but now this is correct
showImage(imageUrl) {
if (this.platform.is(‘cordova’) && this.platform.is(‘android’)) {
File.readAsDataURL(cordova.file.applicationDirectory + “www/assets/img/”, imageUrl)
.then((dataURL:string) => {
PhotoViewer.show(dataURL, “”, {share: false})
})
.catch(
(err)=>{alert(“err: “+err)
});
} else if (this.platform.is(‘cordova’) && this.platform.is(‘ios’)) {
PhotoViewer.show(cordova.file.applicationDirectory + “www/assets/img/"+imageUrl);
}
}
https://github.com/apache/cordova-plugin-file
import { App } from ‘ionic-angular’;