Welcome to AXEMAS documentation!¶
Development Framework for MultiPlatform hybrid mobile applications.
AXEMAS handles the whole navigation of the application and transition between views, while it permits to implement the views content in HTML itself.
AXEMAS works using sections, each Section represents the content of the view
and is loaded from an HTML file or from an external URL.
Whenever native code requires to be attached to a section, it is possible to attach
a SectionController to a Section itself.
Getting Started¶
To Install AXEMAS you need Python 2.7 with the pip package manager installed
as AXEMAS uses Python to generate project skeletons. To install pip follow the
Pip Install Guidelines.
Then you can install AXEMAS toolkit using:
$ pip install axemas
To create a new AXEMAS project you can then use the axemas-quickstart command,
it will automatically create a new AXEMAS project:
$ gearbox axemas-quickstart -n ProjectName -p com.company.example
See Quickstarting a New Application for additional details on the gearbox command.
Basic Project Introduction¶
By default AXEMAS will create for you a basic application for iOS and Android.
Content of the application will be available inside www directory and the application
will load www/sections/index/index.html on startup.
The application can be run by simply opening in Android Studio or XCode the
android and ios projects inside the newly created application directory and
then pressing the Run button inside the IDE.
To start customizing the application and providing your own code, you can open the www
directory in your favourite editor and start editing sections.
From the index.html section, you can then use the JavaScript API to push and pop additional sections and implement your whole Application.
Binding to Native Code¶
The previous code shows how to load HTML based sections and rely on the JavaScript API
to implement your web application. When more advanced features or interaction with the
hardware is needed you might need to get to native code level. AXEMAS has been designed
specifically to make it as easy as possible to work with native code, the main difference
with frameworks like Cordova is explicitly that AXEMAS makes native a first citizen of
your application.
HTML sections loaded by your application are explicitly declared inside the application code
itself and the application window is explicitly create using makeApplicationRootController
from the NavigationSectionsManager
Inside your AppDelegate for iOS:
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.rootViewController = [NavigationSectionsManager makeApplicationRootController:@[@{
@"title": @"Home",
@"url": @"www/home.html",
}]];
[self.window makeKeyAndVisible];
return YES;
}
@end
Or in your AXMActivity subclass onCreate() method for Android:
public class MainActivity extends AXMActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
JSONObject data = new JSONObject();
try {
data.put("url", "www/home.html");
data.put("title", "Home");
} catch (JSONException e) {
e.printStackTrace();
}
NavigationSectionsManager.makeApplicationRootController(this, data);
}
}
}
The binding between the HTML Sections and native code is performed using
SectionControllers, to link a section to a section controller is as easy as
registering the controller class for the specified route:
[NavigationSectionsManager registerController:[MySecionController class] forRoute:@"www/mysection.html"];
NavigationSectionsManager.registerController(this, MySecionController.class, "www/mysection.html");
To get started using SectionControllers read the iOS API and Android API.
Contents: