SynapseIndia reviews on mobile apps tools for

  • Published on

  • View

  • Download

Embed Size (px)


  1. 1. 1
  2. 2. Eclipse High-Level Architecture Java Runtime Environments MTJ Ecosystem MTJ high-level layers MTJ Development by Milestone Device fragmentation Pre-processing Automated & manual testing Build management Wizards Runtime Launch Debugging Code Editor Deployment Device Management Signing and Obfuscation Localization Application Flow GUI Editor Backup slides 2
  3. 3. 3 Tools Platform Tools Platform FrameworksFrameworks RichClientPlatformRichClientPlatform Technology Enablers Technology Enablers EcosystemEcosystem VerticalIndustryInitiativesVerticalIndustryInitiatives Horizontal Technologies Horizontal Technologies SWTSWTSWTSWTWorkbenchWorkbenchWorkbenchWorkbenchRuntimeRuntimeRuntimeRuntime UpdateUpdateUpdateUpdateProject ModelProject ModelProject ModelProject ModelWorkspaceWorkspaceWorkspaceWorkspace Multi-languageMulti-language supportsupport Multi-languageMulti-language supportsupport UI FrameworksUI FrameworksUI FrameworksUI FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksModeling FrameworksModeling FrameworksModeling FrameworksModeling Frameworks Test andTest and PerformancePerformance Test andTest and PerformancePerformance C/C++ Dev.C/C++ Dev. ToolsTools C/C++ Dev.C/C++ Dev. ToolsTools Java Dev.Java Dev. ToolsTools Java Dev.Java Dev. ToolsTools BusinessBusiness Intelligence &Intelligence & ReportingReporting BusinessBusiness Intelligence &Intelligence & ReportingReporting Web ToolsWeb ToolsWeb ToolsWeb ToolsEmbedded &Embedded & Mobile ToolsMobile Tools Embedded &Embedded & Mobile ToolsMobile Tools ModelingModeling ToolsTools ModelingModeling ToolsTools DataData ManagementManagement DataData ManagementManagement ServiceService OrientedOriented ArchitectureArchitecture ServiceService OrientedOriented ArchitectureArchitecture SystemSystem ManagementManagement SystemSystem ManagementManagement DesktopDesktop DomainDomain DesktopDesktop DomainDomain InternetInternet DomainDomain InternetInternet DomainDomain EnterpriseEnterprise DomainDomain EnterpriseEnterprise DomainDomain EmbeddedEmbedded DomainDomain EmbeddedEmbedded DomainDomain MobileMobile DomainDomain MobileMobile DomainDomain
  4. 4. 4 Desktop Low-end devices Enterprise High-end devices Smart Cards Optional packages Optional packages Optional packages MIDP Optional packages CLDC Foundation profile CDC Personal profile Java Card Card VMKVMKVMJava Virtual MachineJava Virtual Machine Java Micro Edition (J2ME) J2EE J2SE Legend Java JRE runtime dependencies Not used Java runtime J&C and MTJ runtime scope The MTJ projects focus in Mobile runtimes is in the J2ME area.
  5. 5. 5 MTJ context EclipseEclipseEclipseEclipse Operating Systems: Win32, Linux, MAC. Operating Systems: Win32, Linux, MAC. Tooling Runtimes JRE 1.4 .. 5.0, J9 Tooling Runtimes JRE 1.4 .. 5.0, J9 XX U E I U E I Vendor Y SDKVendor Y SDK JavaDocsJavaDocs APIAPI Real DeviceReal DeviceReal DeviceReal Device Download /Download / Update sitesUpdate sites EclipseEclipse Download /Download / Update sitesUpdate sites EclipseEclipse Sun / IBMSun / IBM (tooling runtime(tooling runtime JRE 5.0 / J9 )JRE 5.0 / J9 ) Sun / IBMSun / IBM (tooling runtime(tooling runtime JRE 5.0 / J9 )JRE 5.0 / J9 ) Vendor XVendor X (for SDK download)(for SDK download) Vendor XVendor X (for SDK download)(for SDK download) DifferentDifferent vendorvendor productsproducts basedbased on Eclipseon Eclipse MTJMTJ DifferentDifferent vendorvendor productsproducts basedbased on Eclipseon Eclipse MTJMTJ Generic SDKGeneric SDK APIAPI JavaDocsJavaDocs MTJMTJMTJMTJ JavaDocsJavaDocsJavaDocsJavaDocs APIAPI APIAPIAPIAPI A List ofA List of JVMSJVMS A List ofA List of JVMSJVMS Vendor YVendor Y (for SDK download)(for SDK download) Vendor YVendor Y (for SDK download)(for SDK download) U E I U E I Vendor X SDKVendor X SDK JavaDocsJavaDocs APIAPI
  6. 6. 6 Mobile IDE ComponentsMobile IDE Components Mobile IDE Extensibility Framework LayerMobile IDE Extensibility Framework Layer Eclipse PlatformEclipse Platform Eclipse Modeling FrameworkEclipse Modeling Framework OSGIOSGIOSGIOSGI Eclipse Tool ServicesEclipse Tool Services Operating Systems: Win32, Linux, MACOperating Systems: Win32, Linux, MAC DeploymentDeployment ManagementManagement DeploymentDeployment ManagementManagement SWTSWTSWTSWT WorkbenchWorkbenchWorkbenchWorkbench VisualVisual EditorEditor VisualVisual EditorEditor Web ToolsWeb Tools ProjectProject Web ToolsWeb Tools ProjectProject GEFGEFGEFGEF Testing &Testing & ProfilingProfiling ToolsTools Testing &Testing & ProfilingProfiling ToolsTools EMFEMFEMFEMF BuildBuild ManagementManagement BuildBuild ManagementManagement Runtime Management Runtime Management Device Management Device Management BIRTBIRTBIRTBIRT WorkflowWorkflow ToolboxToolbox WorkflowWorkflow ToolboxToolbox Data ToolsData ToolsData ToolsData Tools GraphicalGraphical ModelingModeling FrameworkFramework GraphicalGraphical ModelingModeling FrameworkFramework JDTJDTJDTJDT GUI BuilderGUI Builder ManagementManagement GUI BuilderGUI Builder ManagementManagement Multi-Multi- languagelanguage supportsupport Multi-Multi- languagelanguage supportsupport MultimediaMultimedia ToolsTools MultimediaMultimedia ToolsTools SecuritySecurity ManagementManagement SecuritySecurity ManagementManagement Obfuscation Provider Obfuscation Provider Device Description Provider Device Description Provider Device Platform Provider Device Platform Provider Packaging Provider Packaging Provider Signing Provider Signing Provider Device Platform Provider Device Platform Provider Build Provider Build Provider Pre- processing Provider Pre- processing Provider GUI Builder Provider GUI Builder Provider Deployment Provider Deployment Provider Ant ProviderAnt Provider xx
  7. 7. 7 Mobile RAD / IDEMobile RAD / IDEMobile RAD / IDEMobile RAD / IDE Provider ComponentsProvider Components IDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework Layer Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform Mobile SDKMobile SDK EmulatorEmulator Mobile SDKMobile SDK EmulatorEmulator WizardsWizardsWizardsWizards CreateCreate ApplicationApplication CreateCreate ApplicationApplication CreateCreate ClassClass CreateCreate ClassClass CodeCode PackagingPackaging CodeCode PackagingPackaging CreateCreate ProjectProject CreateCreate ProjectProject BuildBuildBuildBuild DeploymentDeploymentDeploymentDeployment Deployment providers Deployment providers Signing provider Signing provider SnippetsSnippets DebuggingDebugging DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice Runtime launchRuntime launch DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice GUI buildersGUI builders HelpHelp LCDUILCDUI EditorEditor LCDUILCDUI EditorEditor eSWTeSWT EditorEditor eSWTeSWT EditorEditor Game EditorGame EditorGame EditorGame Editor Flow EditorFlow EditorFlow EditorFlow Editor Custom Components Custom Components LocalizationLocalization J2ME Nature J2ME Nature Audio converter Audio converter LegendLegend 11stst IterationIteration 22 ndnd IterationIteration 11stst ReleaseRelease Future designFuture design Runtime Management Framework Runtime Management Framework Deployment Framework Deployment FrameworkBuild FrameworkBuild Framework Device Management Framework Device Management Framework GUI Builder Framework GUI Builder Framework Security Management Framework Security Management Framework Obfuscation providers Obfuscation providers XxXx EditorEditor XxXx EditorEditor JAD EditorJAD Editor Code EditorCode Editor J2ME project builders J2ME project builders SymbianSymbian templatestemplates SymbianSymbian templatestemplates Create UICreate UICreate UICreate UI Pre- processing Pre- processing PackagingPackaging Antenna provider Antenna provider Project Build Other
  8. 8. Different characteristics of devices must be taken into account Physical device characteristics, e.g. display resolution,-size and buttons, processing power and memory Quirks in the OS, API and Java virtual machine implementations Variation comes also from APIs supported by each device Flavours of Symbian (S60, S80, S90) and other mobile OS versions J2ME profiles and configurations CLDC 1.0/1.1 and MIDP 1.0/2.0 Optional APIs for Bluetooth, 3D, Multimedia, Web Services, etc. Proprietary APIs from device manufacturers and operators In addition, there are other operator and market requirements Localisation, branding, billing, etc. New devices and APIs are introduced frequently 8 Huge amount of configurations Varying devices Varying devices Differing assets Differing assets Operator requirements Operator requirements
  9. 9. 9 ApplicationApplication DevelopersDevelopers ApplicationApplication DevelopersDevelopers ContentContent aggregators andaggregators and DistributorDistributor ContentContent aggregators andaggregators and DistributorDistributor Network operatorsNetwork operatorsNetwork operatorsNetwork operators End-user /End-user / consumerconsumer End-user /End-user / consumerconsumer InfrastructureInfrastructure providersproviders InfrastructureInfrastructure providersproviders DeviceDevice manufacturesmanufactures DeviceDevice manufacturesmanufactures RetailRetailRetailRetail This diagram represents the major players in the wireless industry. Application- and Content providers have partnered with Network operators to design and develop Java solutions for consumers. Content aggregators license content from its creators and format it to be used with specific devices and networks. Content distributors create the revenue by providing the distribution channels. Network operators (carriers) and Infrastructure providers control the wireless network and own the customer information. Device manufactures drive the technical innovation through the new hardware. The application developers and content aggregators needs most tools against the device fragmentation. LegendLegend Information exchangeInformation exchange Cash flow exchangeCash flow exchange
  10. 10. Definition: Pre-processing changes the source code before it is compiled. It allows conditional compilation and inclusion of one source file into another and is helpful when trying to maintain a single source for several devices, each having its own bugs, add-on APIs, etc. and it enables device optimization. The Eclipse JDT could add support for pre-processing, alternative could be e.g. J2ME Polish, which can be integrated to Eclipse (licensing must be checked) or re-implementing the similar functionality. One key feature is the device description database, that helps to create tasks or actions against similar devices. The device description database enables that developers can identify and group devices with an keyword, that can be used e.g. in pre-processing. 10 DeviceDevice Emulator Device Emulator Device Real Device Real Device1..n 1 Device PlatformDevice Platform i/f Fragmentation Definition Fragmentation Definition 1 Runtime Platform Definition Runtime Platform Definition Can be seen as one definition
  11. 11. The Application Flow creates kind a action diagram, where the visible and invisible actions are drawn on a graphical editor. The AF-editor enables that developer can design e.g. mobile application UI flow. 11