MyAppconverter platform mappings
-
Upload
kamal-youbi -
Category
Technology
-
view
499 -
download
0
Transcript of MyAppconverter platform mappings
Summary• WhatisMyAppConverter• TheCoreTransformationEngine• SemanticDrivenTransformations• AsDevelopers,whywouldyoucare?• UsingMyAppConverter Conversionservice• Ios ApplicationsLifecycle• GeneratedAndroidLifecycle• Thenativestructureofthemobileapplications:IOS• Thenativestructureofthemobileapplications:Android• Mappingsmethodsignatures• MyAppConverter languageSyntaxesMappings• MyAppConverterMappingPlatformdifferences
What is MyAppConverter?
No SDK to download No Runtime
All platforms Peace of Mind
Instantly & Automatically Native Code Conversion(Online or via IDE plugin)
Your converted code is native with no embedded runtime for
maximum performance
Currently supporting iOS to Android & will be
extended to other platforms
We don't store nor share anyof your data and code
iOS project code
Android project code
Models(Android)
Mapping
Parsing
Transformation
AutomaticCodeGeneration
The Core Transformation Engine
Models(iOS)
Metamodels(iOS)
Metamodels(Android)
Technology
Architecture
Business
Semantic
LevelofAbstraction
SourceApplication TargetApplication
• MappingByintent• Transformationasaservice• Nativetonative• Readableanddocumentedcode• NoembeddedRuntime• Multi-platformcoverage• NoEditorDependency
• Lowscalability• NouseableCode
• Embedded Runtime
• StrongEditorDependency
if(
AA
==
AA
)
then
{log(
“
test
“) if
(AA
==
AA
)
then
{log(
“
test
“)}
}
if(
AA
==
AA
)
then
{log(
“
test
“) if
(AA
==
AA
)
then
{log(
“
test
“)}
}
Semantic DrivenTransformation
As Developers, why would you care?• Total freedom to develop on your favourite platform without limiting
yourself to other platforms
• Your converted code is fully documented & readable
• Being platform and technology agnostic, we guarantee the scalability of your code
• Enabling open source mapping will allow developers to benefit from all the technologies and market innovation across all platforms
• You will be part of an active, vibrant and global community of developers across borders and technologies
• You want to create mobile apps that can be available to anyone, anywhere no matter what the smartphone is and with the best UX
Ios ApplicationsLifecycleAniOSapplicationgoesthrough asetofstatesasitruns.Asanappmovesthrough thestatesofitslifecycle,thestateoftheappisdefinedbyitslevelofactivitysuchasNotRunning, ActiveorSuspended.
GeneratedAndroidLifecycleThegeneratedandroidapplicationiseventdrivenandgoesthrowasetofthefollowing setofevents
Thenativestructureofthemobileapplications:IOS
• TheIos applicationstructurefollowamodelviewControllerpattern.
Thenativestructureofthemobileapplications:IOS
• TheUIApplicationMain functionintheprojectsetsupseveralkeyobjectsandstartstheapprunning.
• AttheheartofeveryiOSappistheUIApplication (AppDelegate)object,whosejobistofacilitatetheinteractionsbetweenthesystemandotherobjects intheapp.
• TheAppDelegate startthe initialviewcontrollerandloaditsUIelementsfromthemain.storyboard ortheequivalent.xib file.
• UsingMyAppConversion servicegetsyouanandroidstudioprojectthathaveanalmostequivalentstructure.
Thenativestructureofthemobileapplications:Android
• TheresultedandroidappprocessstartbyinstantiatingtheApplicationobject,andthenstarttheLauncherActivity.
• TheLauncherActivity usestheApplicationinstancetostarttheinitialviewcontroller,andloaditsviewandfinallyaddittotheLauncherActivity view
Mappingsmethodsignatures• ThegeneratedjavamethodnametheconcatenationofiOS
methodnameandthealiases• Thefirstletterofeachaliasiscapitalized.• ThetypesoftheparametersiniOSareconvertedtotheir
mappedequivalent.
MyAppConverter languageSyntaxesMappings
• Classes• Categories• Enums• Structs• Pointers• Memorymanagement• Blocks
• Protocols• Primitivetypes• Datastructures• Casting• Typedef• Macros
WhenconvertingobjectivectojavaMyAppConverter takescareofallthefollowingaspectsofthelanguage.TheMapping knowledgebaseprovideanimplementation foreachelementofthefollowing inthetargetplatform
MyAppConverter MappingPlatformdifferences
• Density-independentpixels(dp)anddesigninvectorat1x– OnAndroid,thekeyunitofmeasureisthedensity-independentpixel
–WhenconvertingfromIosMyAppConvertertransformspointsoniOSandCSSpixelstoDPs.
– MeasuringandsizingthingsinDPsensuresyourdesignshaveaconsistentphysicalsizeacrossdevicesofvaryingdensity.
MyAppConverter MappingPlatformdifferences
• ThesystemBackbuttonAndroid phoneshaveabackbutton, whichcanbeusedtoreturn topreviousscreensintheapp.
iPhones don’t have this button, this is usually done by a “back” chevron in the top left of the screen, MyAppConverterConvert itto a back button and mapps the android back button to the same event
MyAppConverter MappingPlatformdifferences
• Bottomtabs– OniOS,it’scommontouseabottomtabbartoswitchbetweenviewsinthe
app.Android’s platformconventionistodisplaytabsforviewcontrolatthetopofthescreeninstead.Inaddition, Androidappsmayusebottombarstodisplayactions.
• Gestures– Offering touchgesturestooperateyourappisagreatwaytomakethe
experiencefast,fluidanddelightful. Youshould alwaysbemindful ofuserexpectationsforgesture-basedinteractiononaplatform.OnAndroid, mostofthecommongestureshaveverystandardizedbehaviors,souserswillexpectyourapptosupport those.There’sanentiresectioninthematerialdesignguidelines coveringgestures,butit’smostimportant togetacoupleofthekeygesturesright.
MyAppConverter MappingPlatformdifferences
• Bottomtabs– OniOS,it’scommontouseabottomtabbartoswitchbetweenviewsinthe
app.Android’s platformconventionistodisplaytabsforviewcontrolatthetopofthescreeninstead.Inaddition, Androidappsmayusebottombarstodisplayactions.
• Gestures– Offering touchgesturestooperateyourappisagreatwaytomakethe
experiencefast,fluidanddelightful. Youshould alwaysbemindful ofuserexpectationsforgesture-basedinteractiononaplatform.OnAndroid, mostofthecommongestureshaveverystandardizedbehaviors,souserswillexpectyourapptosupport those.There’sanentiresectioninthematerialdesignguidelines coveringgestures,butit’smostimportant togetacoupleofthekeygesturesright.