As you can see by my stale timeline, I haven't updated this blog in awhile. I've been busy building the HomDNA app for iOS and Android using Cordova, Ionic, and Angular. Here's what I've learned (more detailed posts to come):
AngularJS Architecture
AngularJS Plugins
- using ui-router for authorization
- modal service with $ionicModal
- logging Angular code with loggly
- creating lodash / underscore mixins
- using ChartJS in Angular
- preloading images
- local storage Angular service
- URL shortening with YOURLS
- customizing $http interceptors
- changing JSON from snake_case to camelCase and back
AngularJS Optimizations
- ng-repeat track by
- one-time binding
- Batarang to find expensive functions
- reducing scope/watchers
- reducing orphaned objects and DOM nodes
- reducing number of DOM nodes
- utilizing templateCache
- caching API responses
- running functions in a controller and assigning result to scope instead of assigning functions directly
- disabling logging on production
AngularJS Unit Testing
- Angular $q promises in Jasmine
- testing directives via their controllers
- testing directive controllers with controllerAs and bindToController
- Jasmine spies
- code coverage and thresholds on push
- using Jasmine + Karma + Gulp
- speeding up unit tests with PhantomJS2
Cordova Plugins
- sending SMS messages
- displaying Cordova version in your app
- displaying environment (dev/staging/production)
Build Process with Gulp
- creating documentation from JSDoc comments
- Sass
- automatic linting with ESLint
- yargs and environment variables
- live reload
- minify, uglify, concat with usemin and ngAnnotate
- generate TODO list in markdown from comments