experience with ionic

got chance working on a hybrid mobile framework for the new corp. and deliver an new app at the same time. and that led to the `ionic` love and hate relationship

  • good
    • love the idea and the possibility of code once, run on multiple platform
    • love the fact that web technique is at the central of ionic
    • love the capability from `cordova` that certain native features are possible in the webview
    • love the ionic cli and io dev experience, simplified most of the build/package/release tasks
  • bad
    • this has nothing to do with `ionic`, it’s the problem of android
      • namely, version fragmentations, we knew how bad that is, we did realize it being even worse in china, as every manufacture ships with their customized rom, and therefore, the versions, or say, variations exploded.
      • crosswalk was supposed to come to the rescue, regardless of the fact that it didn’t unify all of the variations, it’s almost unusable due to its large weight, prepare for an 30mb increase of your release APK, otherwise just stay away from it.
      • another terrible fact due to china’s market is missing play store, as a result, there’re tons of android market places, and none of them deliver the same feature set as play store does
      • worse than that, push notification for android is a mess, same as play store, gone is the GCM, everyone has to have some way of mimic a system publish notification, whether wqtt or other solutions, either consumes significantly more dev resources and runtime resources
      • but in the end, as `ionic` targets both ios and android, it’s really for everyone’s best interest if there could be some magic from the `ionic` team to make version differences disappear.
    • performance is an after-thought in most cases
      • js scroll is at the heart of `ionic` scroll view, nevertheless, it’s hardly usable in android again
      • if you’d like to try native scroll in android, which is doable, you’ll miss the scrollbar, resulted in inconsistent look and feel
      • if you’d like to give up ng-repeat (usually that’s what caused the page to need scroll), collection-repeat might or might not be the right fit depends on your layout. unfortunately, our PM loves multi-columns layout, which makes collection-repeat scratch its head figuring out when to trigger a swap
      • forget about all above, assume those’re all fixed, you’ll eventually get to acknowledge that angular, at least, 1.3, 1.4, 1.5, until it’s $digest cycle to disappear (2.0), could cause performance issues
      • frankly, we had to replace with¬†vanilla javascript at a few places for the sake of speed
    • it involves so many things, that’s a problem when advocating to a broader developer pool
      • node, npm, bower, gulp, angular, ui-router, cordova, ionic, cli, io, sass those’re cool stuff for an experienced front-end engineer, less so for an average team, the education cost is high

haven’t got to the end, will update with more

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s