1. 程式人生 > >自己專案前端和APP所用技術

自己專案前端和APP所用技術

1. 前端:JavaScript+  HTML+CSS/SCSS 使用的框架是Angularjs

2. 前端開發完交付給測試之前,需要自己先寫單元測試,不涉及介面測試,只針對自己關心的邏輯,使用的框架是jasmine

APP

App: 跨平臺開發 : nativescript + Angular

PhoneGap

Phone Gap is to launch a web app inside an iOS or Android web view.

Pros:

  • Most of the web code can be reused to create a native app
  • Masive 3rd party support for web app, great UI component vendors
  • Free

Cons:

  • Low performance due to the web view wrapper and non-native API calls
  • Hack way of implementing native app, in-browser user experience

NativeScript

NativeScript is to run a NativeScript runtime on JavaScript virtual machine on iOS and Android. Your JavaScript code is directly run on native OS without a web view wrapper.

Pros:

  • Great tools support from Telerik that can help create/build/develop/test/deploy → NativeScript SideKick
  • Use TypeScript: give you the ability of using strong typing and design patterns
  • Angular based framework which has nice helper on navigation/service/dependency injection/data binding/event handling/filtering for better code reusability
  • Good component and native plug in support, good community support
  • Free

Cons:

  • There may be some plugin that is not there on the market, like a native rich text editor, but we can find an alternative, CKEditor

React Native

Pros:

  • Great community support
  • Developing/debugging experience is great
  • Free

Cons:

  • Some components may not be available and you have to create it by your own.
  • Learning cost is high for our team and may not be suitable for us due to a totally different framework (we might have to refactoring our web app as well if we use React ecosystem)

Telerik Platform

Telerik platform is a set of tools which can help development/build/testing/deployment of NativeScript apps.

NativeScript SideKick

Sidekick is free tool that can build/run/debug/release your NativeScript apps. But it doesn't have QR code support. 

This tool supports cloud build which means you can build iOS on windows machine.

The free license only supports 400 cloud build per user account per month. But it provides commercial license for more cloud builds.

Context Before Reading Comparison

Hybrid App vs Native App

Hybrid app is using a web view as a wrapper of a web application. So most of our existing web app code can be reused. If not reusable, at least we use that as reference. But people are getting away from this due to the fact of how hard it is to have a native graphic and performance.

For native app, the user experience is awesome with native graphic and better performance than web view. But the learning cost is high for us since we don't have the experience before.

NativeScript vs React Native

There is no absolute right or wrong between NativeScript and React Native. It is totally a personal interest. They both can do the job. It is like the endless debate between Angular vs React in web app.

For Angular1 vs React, I do think React is better. But for Angular2 vs React, I have no comments since I think both frameworks are awesome!

But some articles do have some opinion on when to use NativeScript and when to use React Native. And there are suggestion recommending combine NativeScript with React Native too.