This shows you the differences between two versions of the page.
| 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 ====== | ||
| - | ** NB: Develop 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.5 | + | * Multi thread impl to speed things up. ( 7 / 7 ) -> 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 images? AKA 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 | ||