User Tools

Site Tools


programming:android_rearchitecture_2016

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
programming:android_rearchitecture_2016 [2016/08/05 18:26]
mjallison
programming:android_rearchitecture_2016 [2017/05/05 18:31] (current)
mjallison
Line 1: Line 1:
 ====== Areas of concern for rearchitecture discussions ====== ====== Areas of concern for rearchitecture discussions ======
  
-** NBDevelop axiomatic programming guidelines **+[[android:object_guidelines|Android Object Design Guidelines]] 
 + 
 +[[android:​code_formatting|Android Source Format Guidelines]] 
  
 ** Prio is (mja/bc) ** ** Prio is (mja/bc) **
  
 +  * [[android:​layer generalization|Layer Generalization]] ( 2 / 1 ) -> 1.5
 +    * **Done 2016**
 +    * Old model had few instances based on LayerEnum (compile time tags)
 +    * Newer model (SmartPlan/​TrackManager) needs layers distinguished by runtime tags (names?)
 +    * Can create new layer and drawables for things that require project inspection by renderer. (e.g. user location).
 +  * [[android:​code_modernization|Code modernization]] ( 3 / 2 ) -> 2.5
 +    * Remove deprecated dialog interaction in SmartsuiteActivity,​ etal.
 +    * Implement new (API 23) [[android:​lpermission model|permission model]]
 +    * Rewrite activities to avoid needing "​noOrientation"​ activity flagm, use savedState
 +    * Relace some activies with Fragments, e.g. SG Alignment, recovery, task chooser ​
 +    * 64 bit versions of the .so files (need NDK modernization?​)
 +  * [[android:​code_modernization|NDK]] <​del>​( 11 / 11 ) -> 11</​del>​ 2.5 (by lumping in with Code Modernization)
 +    * Use more modern NDK / Approved Gradle build scheme.
 +    * Strip un-needed .so files from some apps, such as Trimble from everything except for Grade/Blade
 +    * See 64 bit native implementation note in Code Modernization.
 +  * Warnings: <​del>​( 9 / 4 ) -> 6.5</​del>​ 2.6 
 +    * Handler (replace with Runnables)
 +    * Processing classes
 +    * Reformatting of source
 +    * Diamond operator ​
 +    * Examine every single ToDo: Fix, ameliorate, remove
 +  * [[android:​project_class_refactoring|Project class refactoring]] ( 1 / 6 ) -> 3.5
 +     * App vs. AGTEK_Lib; e.g. SD vs. All, SG/SB vs. rest; not needed code
 +       * e.g. carry too much un-needed functionality on some apps (e.g. highway aligns in SmartPlan, etc)
 +       * e.g. too much inheritence from unwanted apps.
 +     * Too many times in which m_project must be cast to the specific class when in main activity to use app specific methods. ​
 +  * Testing ( 5 / 3 ) -> 4
 +      * Improve unit test coverage / unit test instances
 +      * Implement UI tests
   * Alignment classes (4 / 8) -> 6   * Alignment classes (4 / 8) -> 6
     * Make easier for use in applications ​     * Make easier for use in applications ​
Line 10: Line 42:
     * Q: Why is "​defaultAlignment"​ called what it is? Isn't it just a "​singlePoint"​ alignment, vs. a dual alignment?     * Q: Why is "​defaultAlignment"​ called what it is? Isn't it just a "​singlePoint"​ alignment, vs. a dual alignment?
     * Currently there are alignment methods in Project classes, activity classes, and projection vs. alignment: reduce     * Currently there are alignment methods in Project classes, activity classes, and projection vs. alignment: reduce
-  * Project classes ( 1 / 6 ) -> 3.5 
-     * App vs. AGTEK_Lib; e.g. SD vs. All, SG/SB vs. rest; not needed code 
-       * e.g. carry too much un-needed functionality on some apps (e.g. highway aligns in SmartPlan, etc) 
-       * e.g. too much inheritence from unwanted apps. 
-     * Too many times in which m_project must be cast to the specific class when in main activity to use app specific methods. ​ 
   * Final isolation of graphics from Project/​Layer objects ( 8 / 5 ) -> 6.5   * Final isolation of graphics from Project/​Layer objects ( 8 / 5 ) -> 6.5
     * (no reading the project)     * (no reading the project)
Line 20: Line 47:
     * No more coupling to Project class     * No more coupling to Project class
     * Repackage to non smartsuite     * Repackage to non smartsuite
-  * Layer generalization ( 2 / 1 ) -> 1.+  * Multi thread impl to speed things up. ( ) -> 7 
-    * Old model had few instances based on LayerEnum (compile time tags) +    * e.g.draping, isopach
-    * Newer model (SmartPlan/TrackManager) needs layers distinguished by runtime tags (names?) +    * e.g. Measure volume computation parallelization 
-  * CachedProjectManager ( 12 / 12 ) -> 12 +    * Action Item: identify other areas to be parallelized.
-    * Better mirror of project structure (sub folders) +
-    * background syncrhonization with server +
-    * Allow prefetch of file contents (e.g. referenced imagesAKA pre-cache) +
-  * Code modernization ( 3 / 2 ) -> 2.5 +
-    * Remove deprecated dialog interaction in SmartsuiteActivity,​ etal. +
-    * Implement new (API 23) permission model +
-    * Rewrite activities to avoid needing "​noOrientation"​ activity flagm, use savedState +
-    * Relace some activies with Fragments, ​e.g. SG Alignment, recovery, task chooser ​ +
-    * 64 bit versions of the .so files (need NDK modernization?​)+
   * ADF evolution ( 6 / 9 ) -> 7.5   * ADF evolution ( 6 / 9 ) -> 7.5
     * Define layer visibility entry     * Define layer visibility entry
Line 41: Line 59:
     * Allow layers with LLA lines, not just NEZ.     * Allow layers with LLA lines, not just NEZ.
     * View type structure for ADF, explicit vs. app implicit     * View type structure for ADF, explicit vs. app implicit
-  * Multi thread impl to speed things up. ( 7 / 7 ) -> 7 
-    * e.g.draping,​ isopach? 
-    * e.g. Measure volume computation parallelization 
-    * Action Item: identify other areas to be parallelized. 
-  * Warnings: ( 9 / 4 ) -> 6.5 
-    * Handler 
-    * Processing classes 
-    * Diamond operator ​ 
-    * Examine every single ToDo: Fix, ameliorate, remove 
   * UI ( 10 / 10 ) -> 10   * UI ( 10 / 10 ) -> 10
     * Common bits like MeasureArea entry. ​     * Common bits like MeasureArea entry. ​
     * Better tree-view (current one has too much exposed functionality).     * Better tree-view (current one has too much exposed functionality).
     * ActionItem: Identify other common UI bits.     * ActionItem: Identify other common UI bits.
-  * NDK 11 11 ) -> 10 +  * CachedProjectManager ​12 12 ) -> 12 
-    * Use more modern NDK / Approved Gradle build scheme. +    * Better mirror of project structure (sub folders) 
-    * Strip un-needed .so files from some apps, such as Trimble from everything except for Grade/Blade +    * background syncrhonization with server 
-    * See 64 bit native implementation note in Code Modernization. +    * Allow prefetch of file contents (e.g. referenced images? AKA pre-cache)
-  * Testing ( 5 / 3 -> 4 +
-      * Improve unit test coverage / unit test instances +
-      * Implement UI tests+
  
 +   * File Hell
 +      * We are starting to create a classic CAD file hell: Lots and lots and lots of files and you can't recreate what you have sompleace else because there are too many local files or hidden files and you need a special export/​import routine to collect them all in one place or put them back in the right places.
 +         * KMZ vs ADF
 +         * Photos
 +         * Notes
 +         * Tracks
 +         * Measure
programming/android_rearchitecture_2016.1470421567.txt.gz · Last modified: 2016/08/05 18:26 by mjallison