SlideShare une entreprise Scribd logo
1  sur  56
Globe Corporate Showroom
                                              October 27, 2012




Copyright (c) 2012 Job and Esther Technologies, Inc.
Major mobile platforms




Copyright (c) 2012 Job and Esther Technologies, Inc.
Major platforms (mobile + desktop)




Copyright (c) 2012 Job and Esther Technologies, Inc.
Mobile platform market shares




                                                       (IDC)

Copyright (c) 2012 Job and Esther Technologies, Inc.
Mobile platform market shares (2015)




Copyright (c) 2012 Job and Esther Technologies, Inc.
Technical things that must be considered



                                      ●   Programming language
                                              ●   APIs and libraries
              ●    Different versions of the operating system
                                          ●   User interface design
                             ●    User interface implementation
                                              ●   Development tools



Copyright (c) 2012 Job and Esther Technologies, Inc.
Programming language




Copyright (c) 2012 Job and Esther Technologies, Inc.
Programming language



              Apple iOS
              Apple iOS                                17% Objective C
                                                       17% Objective C

              Windows Phone 20% C#
              Windows Phone 20% C#

              Android
              Android                                  44% Java
                                                       44% Java

              BlackBerry
              BlackBerry                               13% C/C++
                                                       13% C/C++

Copyright (c) 2012 Job and Esther Technologies, Inc.
“NATIVE” vs “NON-NATIVE”


          “NATIVE” is something that does not need an
                          interpreter


The primary language of any platform is “NATIVE” to
                   the platform.


         All other languages on that platform are “NON-
                           NATIVE”.


Copyright (c) 2012 Job and Esther Technologies, Inc.
APIs and libraries
                                    Android            iOS                    Windows Phone

 User interface                     Android API        Cocoa Touch / UIKit    Silverlight
 framework


 Graphical rendering                Immediate          Immediate              Retained
 model


 Networking API                     Standard Java      Standard Posix /       .NET
                                                       CFNetwork
 Memory management Garbage collection                  Reference counting /   Garbage collection
                                                       manual


 Library format                     .jar               .a / .so               .dll

 Web browser                        WebKit             WebKit                 Internet Explorer
 component



Copyright (c) 2012 Job and Esther Technologies, Inc.
Example: Connecting a socket
 IOS / Objective C

 CFSocketRef socket = CFSocketCreate(NULL, PF_INET, SOCK_STREAM, IPPROTO_TCP,
      kCFSocketConnectCallBack, (CFSocketCallBack)ConnectCallBack, &CTX);
 struct sockaddr_in addr;
 memset(&addr, 0, sizeof(addr));
 addr.sin_len = sizeof(addr); addr.sin_family = AF_INET;
 addr.sin_port = htons(PORT); addr.sin_addr.s_addr = INADDR_ANY;
 CFDataRef connectAddr = CFDataCreate(NULL, (unsigned char *)&addr, sizeof(addr));
 CFSocketConnectToAddress(socket, connectAddr, −1);


  ANDROID / JAVA                                       WINDOWS PHONE / C#

  try {                                                IPEndPoint endpoint =
          InetAddress serverAddr =                         new IPEndPoint(ipAddress, PORT);
          InetAddress.getByName(serverIpAddress);      Socket socket =
          Socket socket = new Socket(serverAddr,           new Socket(AddressFamily.InterNetwork,
               serverPort);                                     SocketType.Stream,
  }                                                             ProtocolType.Tcp);
  catch (UnknownHostException e1) {
  }
  catch (IOException e1) {
  }



Copyright (c) 2012 Job and Esther Technologies, Inc.
Different versions of the operating system




                                                       (As of June 2012; source Chitika)




Copyright (c) 2012 Job and Esther Technologies, Inc.
User interface design

                     Windows Phone                     Android   iOS




Copyright (c) 2012 Job and Esther Technologies, Inc.
User interface implementation
 XAML (Windows Phone)                            Layout (Android)                Storyboard (iOS)

 <phone:PhoneApplicationPage                     <?xml version="1.0"             <?xml version="1.0"
 x:Class="eqela.samples.squar                    encoding="utf-8"?>              encoding="UTF-8"
 e.MainPage"                                     <LinearLayout                   standalone="no"?>
 xmlns="http://schemas.micros                    xmlns:android="http://sche      <document
 oft.com/winfx/2006/xaml/prese
                                                 mas.android.com/apk/res/a       type="com.apple.InterfaceBu
 ntation"
 xmlns:x="http://schemas.micro                   ndroid"                         ilder3.CocoaTouch.Storyboa
 soft.com/winfx/2006/xaml"                       android:layout_width="fill_p    rd.XIB" version="2.0"
 xmlns:phone="clr-                               arent"                          toolsVersion="2837"
 namespace:Microsoft.Phone.C                     android:layout_height="fill_p   systemVersion="12A269"
 ontrols;assembly=Microsoft.Ph                   arent"                          targetRuntime="iOS.CocoaT
 one" xmlns:shell="clr-                          android:orientation="vertical   ouch"
 namespace:Microsoft.Phone.S                     " ><TextView                    propertyAccessControl="non
 hell;assembly=Microsoft.Phon                    android:id="@+id/text"          e" useAutolayout="YES"
 e"                                              android:layout_width="wrap      initialViewController="4">
 xmlns:d="http://schemas.micro                   _content"                          <dependencies>
 soft.com/expression/blend/200
 8"
                                                 android:layout_height="wra             <plugIn
 xmlns:mc="http://schemas.ope                    p_content"                      identifier="com.apple.Interfac
 nxmlformats.org/markup-                         android:text="Hello, I am a     eBuilder.IBCocoaTouchPlugi
 compatibility/2006"                             TextView" /><Button             n" version="1921"/>
                                                 android:id="@+id/button"           </dependencies>

Copyright (c) 2012 Job and Esther Technologies, Inc.
Development tools




    Microsoft Visual Studio – Windows Phone

                                                                   Eclipse - Android




                                               Apple Xcode - iOS


Copyright (c) 2012 Job and Esther Technologies, Inc.
Bottom line



While targeting only the most popular
mobile platforms, you will need to work
with 10-20 different operating system
   platforms/versions, at least 3-4
 different programming languages,
   each with different API libraries.

Copyright (c) 2012 Job and Esther Technologies, Inc.
How to make this work?




Copyright (c) 2012 Job and Esther Technologies, Inc.
The usual solution (#1)
 ●   Only work with one operating system
       “I will only make applications for Android”
       ●


     ● “I am an iOS DEVELOPER!”


 ●   The upside:
       Easy to do. You only need to learn one language and
       ●

       API, and write your program using the matching tools.
 ●   The downside:
       ●   You limit the potential of your application (you cannot
           reach all users).
       ●   Your future is tied to the target platform. (Eg. If Apple
           removes your app from the AppStore, it's over)
Copyright (c) 2012 Job and Esther Technologies, Inc.
How to expand? : PORTING

 ●    Wikipedia: “Porting is the process of adapting
      software so that an executable program can be
      created for a computing environment that is
      different from the one on which it was originally
      designed.”
 ●    Wikipedia: “Software is portable when the cost of
      porting it to a new platform is less than the cost of
      writing it from scratch.”
 ●    → Traditional native applications (Android apps,
      iOS apps, etc.) are not portable.

Copyright (c) 2012 Job and Esther Technologies, Inc.
The usual solution (#2)
 ●   Make several versions of your program, one for each
     platform
      ●   Write the same program multiple times; first in Java, then Objective-
          C, then C# (often called “porting”)
 ●   The upside:
      ●   You will not limit the potential of your application, as you can now
          reach all your users.
 ●   The downside:
      ●   Massive amount of work in rewriting the same program over and
          over again. Very expensive if done professionally. Also not very
          rewarding for a programmer (doing the same work repeatedly).
      ●   You end up with multiple codebases of the same program. Very
          tedious to maintain and develop further.


Copyright (c) 2012 Job and Esther Technologies, Inc.
The third way:

                   CROSS PLATFORM DEVELOPMENT




Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development
 ●   Producing portable applications for multiple platforms
     using a single codebase
       ●   Write a program only once, but use it on several platforms
 ●   Depending on the cross platform development
     method, the applications may be native (not requiring
     interpretation) or non-native (interpreted in some
     manner)
 ●   Especially the non-native approach has issues in
     performance, memory use and application size,
     which has caused many to abandon even the idea of
     cross platform development.

Copyright (c) 2012 Job and Esther Technologies, Inc.
The Eqela video




    http://www.youtube.com/watch?v=WcWf7SXGBv0




Copyright (c) 2012 Job and Esther Technologies, Inc.
Our solution: EQELA




 ●    Eqela reads source code written in the
      Eqela programming language / API, and
      translates it to various other languages,
      targeting different APIs / platforms
Copyright (c) 2012 Job and Esther Technologies, Inc.
Eqela is .. (#1)
                                               A modern, object oriented
                                               programming language
                                                 ●     Powerful, object oriented, easy
                                                       to use, efficient to program
                                                 ●     Designed to fit the needs of the
                                                       different target platforms
                                                 ●     Part of the C syntax family
                                                 ●     Instantly familiar to anyone with
                                                       experience in C, C++, Java, C#,
                                                       JavaScript

Copyright (c) 2012 Job and Esther Technologies, Inc.
A sample program
●   A cross-platform graphical “Hello world” application:


       class Main : LayerWidget
       {
         public void initialize() {
           base.initialize();
           add(LabelWidget.instance().set_text(“Hello World”));
         }
       }



●   Works exactly the same way on all supported
    operating systems / devices

Copyright (c) 2012 Job and Esther Technologies, Inc.
Eqela is .. (#2)
                                                An advanced compiler /
                                                programming language translator
                                                 ●     Converts a source programming
                                                       language (Eqela) to other
                                                       programming languages (Java,
                                                       C#, C, JavaScript, ..)
                                                 ●     Generates project files / directory
                                                       structures to be used by the
                                                       development tools of the various
                                                       target platforms
                                                 ●     Pulls in libraries to link with the
                                                       application
Copyright (c) 2012 Job and Esther Technologies, Inc.
Eqela is .. (#3)
                                                  A cross platform development
                                                  API
                                                   ●   A cross-platform API that works
                                                       across programming languages
                                                   ●   All common functionalities, such
                                                       as file I/O, networking,
                                                       threading, data structures, ..
                                                   ●   Same API on any language and
                                                       operating system



Copyright (c) 2012 Job and Esther Technologies, Inc.
Eqela is .. (#4)
                                                 A cross platform graphical user
                                                 interface (GUI) API
                                                  ●    A rich set of user interface
                                                       components and controls
                                                  ●    The controls are available and
                                                       the GUI works across all
                                                       platforms
                                                       ●   Mobile devices
                                                       ●   Desktop
                                                       ●   Web / HTML5
                                                  ●    Develop your own controls
Copyright (c) 2012 Job and Esther Technologies, Inc.
Some GUI components




Copyright (c) 2012 Job and Esther Technologies, Inc.
Automatic scaling of user interfaces




Copyright (c) 2012 Job and Esther Technologies, Inc.
Eqela is .. (#5)
                      A development tool / environment




Copyright (c) 2012 Job and Esther Technologies, Inc.
How it works


                                          Eqela           C
                                                                     iOS         iOS
                                         Libraries      source
                                                                     SDK      application
                                                         code



                                                         Java
          Eqela                                                     Android    Android
                                          Eqela         source
          Source                                                     SDK      application
                                         Compiler        code
           Code



                                                       Javascript    Run in
                                                         code       browser




Copyright (c) 2012 Job and Esther Technologies, Inc.
How it works : Sample application
 class Main : LayerWidget
 {
   public void initialize() {
     base.initialize();
     add(LabelWidget.instance().set_text(“Hello World”));
   }
 }


                                                          Main.java,        Android
                                          Eqela
          Main.eq                                      LayerWidget.java,
                                         Compiler                            SDK
                                                       LabelWidget.java




                                     LayerWidget,                           Android
                                     LabelWidget                           application



Copyright (c) 2012 Job and Esther Technologies, Inc.
100% native

                                                       Only native code → “100% native”
                                                           No virtual machine added
                                                             No interpreter added




                                                                 Main.java,                Android
                                          Eqela
          Main.eq                                             LayerWidget.java,
                                         Compiler                                           SDK
                                                              LabelWidget.java




                                     LayerWidget,                                          Android
                                     LabelWidget                                          application



Copyright (c) 2012 Job and Esther Technologies, Inc.
Main.eq → Main.java
       class Main : LayerWidget
       {
                                                     (EQELA)
         public void initialize() {
           base.initialize();
           add(LabelWidget.instance().set_text(“Hello World”));
         }
       }

       package mk.test;
       public class Main extends eq.gui.LayerWidget
       {
           @Override
           public void initialize() {
               super.initialize();
       ((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge
       t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_
       StringStatic_for_strptr("Hello world"))));
           }

             public Main() {
             }
       }                                                           (JAVA)
Copyright (c) 2012 Job and Esther Technologies, Inc.
Also type code in the native language


               class AndroidHTTPGet
               {
                   public static bool execute(String url) {
                       embed “java” {{{
                             org.apache.http.client.methods.HttpUriRequest hur =
                                   new org.apache.http.client.methods.HttpGet(url.to_strptr());
                             android.net.http.AndroidHttpClient hc =
                                   android.net.http.AndroidHttpClient.newInstance(“testing”);
                             org.apache.http.HttpResponse resp = hc.execute(hur);
                             if(resp == null) {
                                   return(false);
                             }
                       }}}
                       return(true);
                   }
               }
                                           → All platform specific features / APIs
                                             are accessible from Eqela code
Copyright (c) 2012 Job and Esther Technologies, Inc.
Is this the only way to do cross platform
                               development?




Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development approach (#1)

The “scripted” approach
                                                         Unmodified
                                                                                 iOS            iOS
                                                        Source code
                                                                                 SDK         application
                                                               +
                                                         Interpreter /
                                                       Virtual machine
                                                           For iOS


    Source code                    Competing                                                      Android
    In a scripting                Development                                                    application
      language                        tool                       Unmodified
                                                                Source code
     (JavaScript,                                                      +
    Lua, Ruby, ..)                                               Interpreter /         Android
                                                               Virtual machine          SDK
                                                                 For Android
                                       Run in
                                      browser
                                                                 (Adobe Air / Flex, Appcelerator, Mono / Unity,
                                                                                        Corona, RhoMobile, ..)

Copyright (c) 2012 Job and Esther Technologies, Inc.
The “scripted approach” architecture




                                           APIs and libraries   Application code



                                                Language interpreter / runtime



                                                       Operating system




                                                                (Adobe Air / Flex, Appcelerator, Mono / Unity,
                                                                                       Corona, RhoMobile, ..)

Copyright (c) 2012 Job and Esther Technologies, Inc.
The “scripted approach” architecture


      Increases memory                     APIs and libraries   Application code     Makes application
            usage
                                                                                   Installers much bigger


                                                Language interpreter / runtime


                                                                                   Applications can only
      Reduces runtime                                  Operating system              Access selected
       Performance                                                                 Parts of the native API



          Due to this approach being very popular, many consider
        cross platform development to be slow, high in memory use,
               and producing bigger installers. This is wrong.


Copyright (c) 2012 Job and Esther Technologies, Inc.
The Mono / Android architecture




                  (Source: http://docs.xamarin.com/Android/Guides/Advanced_Topics/Architecture)




Copyright (c) 2012 Job and Esther Technologies, Inc.
Unity (includes Mono) on Android




      C++ code




Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development approach (#2)

The “MoSync” approach


                                                               Runtime /           iOS
        C++ class                             Proprietary       Virtual         application
     Library / header                          bytecode        machine
           Files


                                                                                           Android
                                The GNU C                                                 application
                                 Compiler
                                  (GCC)                Secondary
                                                        Compiler
        C++ source                                     (MoSync)
          code                                                                        Windows
                                                                                       Phone
                                                                                     application

                 Very similar to the “scripted” approach,                   Run in
                   only somewhat more complicated                          browser
                                                                                               (MoSync)

Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development approach (#3)

The “C++” approach
                                                                                 iOS
                                   Cross
                                                                              application
                                  Plaftorm
                               Class library
                              In the specific
                                 language
                               (Usually C++)                                                BlackBerry
                                                                                             Playbook
                                                           SDK /                            application
               Source code                                compiler
               In a specific
                Language
              (Usually C++)
                                                                                  Android
                                                                                 application

                                                                 Windows
 + Truly native (100%)                           Run in           Phone
 + High performance                             browser         application
 - Limited platform support
 (not really cross platform)                                                  (Marmalade, Qt, WxWidgets)

Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development approach (#4)

The “embed a web browser” approach


          Run in                                        C source code
         browser                  Libraries
                                                        That opens a
                                                         Browser and
                                                         Displays the
                                                           program         iOS         iOS
                                                                           SDK      application
       Source
       Code in
     HTML, CSS,                      “Compiler”
      JavaScript                                                          Android    Android
                                                                           SDK      application
                                                       Java source code
                                                         That opens a
                                                         Browser and
- Very poor performance                                  Displays the
- Suitable for only “web-style” apps                       program
- Limited access to platform APIs
+ Easy way to convert existing websites to
“native apps”                                                                        (PhoneGap)

Copyright (c) 2012 Job and Esther Technologies, Inc.
Cross platform development approach (#5)

The “source code conversion” approach


                                         Libraries        C
                                                                     iOS         iOS
                                                        source
                                                                     SDK      application
                                                         code



                                                         Java
                                                                    Android    Android
          Source                                        source
                                         Compiler                    SDK      application
           Code                                          code




 + Truly native (100%) on any platform                 Javascript    Run in
 + High performance                                      code       browser
 + Optimized memory use
 + Small installer size
 + Unrestricted API access

Copyright (c) 2012 Job and Esther Technologies, Inc.
Copyright (c) 2012 Job and Esther Technologies, Inc.
Comparison : “Hello world” application



 ●    The “scripted” approach:
       ●    Appcelerator Titanium: 8MB
       ●    Mono: 4MB
 ●    The “embed a web browser” approach:
       ●    PhoneGap: ~300KB
 ●    The “source code conversion” approach
       ●    Eqela: 96KB



Copyright (c) 2012 Job and Esther Technologies, Inc.
How to learn more about Eqela?




Copyright (c) 2012 Job and Esther Technologies, Inc.
Sign up and learn more details



                                    ●   Free registration at
                                        http://www.eqela.com/register
                                    ●   Browse through the documentation,
                                        tutorials, sample programs and
                                        technical information




Copyright (c) 2012 Job and Esther Technologies, Inc.
Try it out for yourself



 ●    Once registered, try Eqela programming
                   at http://www.eqela.com/try
         ●    Make short programs and compile to
                               different platforms
         ●     Get familiar to the language and see
                                       Eqela in action




Copyright (c) 2012 Job and Esther Technologies, Inc.
Get one


                                    ●   Choose any of the supported platforms
                                        where you wish for your application to
                                        work
                                    ●   Install the Eqela compiler on your
                                        computer; no internet connection
                                        required
                                    ●   Place your order at
                                        http://www.eqela.com/buy



Copyright (c) 2012 Job and Esther Technologies, Inc.
Supported platforms
        PLATFORM                     TOOLS AVAILABLE   EQELA LIVE   SUBSCRIPTION
  Microsoft Windows                              Yes                    Yes
  Mac OS X                                       Yes                    Yes
  Linux                                          Yes                    Yes
  Igellle                                        Yes                    Yes
  Android                                                 Yes           Yes
  HTML5 / JavaScript                                      Yes           Yes
  Apple iOS                                                             Yes
  BlackBerry / Java                                                     Yes
  BlackBerry / QNX                                                      Yes
  Windows CE                                                            Yes
  Windows Mobile                                                        Yes
  Windows Phone                                                         Yes
  Symbian OS                                                            Yes
  Meego / Jolla                                                      Coming soon
  Firefox OS                                                         Coming soon


Copyright (c) 2012 Job and Esther Technologies, Inc.
Licensing cost




                                                 USD150
                                                / platform
                                             / programmer
                                                  / year


Copyright (c) 2012 Job and Esther Technologies, Inc.
Thank you




Copyright (c) 2012 Job and Esther Technologies, Inc.

Contenu connexe

Tendances

Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
Ahsanul Karim
 

Tendances (20)

Android by LAlitha
Android by LAlithaAndroid by LAlitha
Android by LAlitha
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
 
Ii 1100-android development for fun and profit
Ii 1100-android development for fun and profitIi 1100-android development for fun and profit
Ii 1100-android development for fun and profit
 
Ii 1300-java essentials for android
Ii 1300-java essentials for androidIi 1300-java essentials for android
Ii 1300-java essentials for android
 
Ii 1500-publishing your android application
Ii 1500-publishing your android applicationIi 1500-publishing your android application
Ii 1500-publishing your android application
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
 
New to native? Getting Started With iOS Development
New to native?   Getting Started With iOS DevelopmentNew to native?   Getting Started With iOS Development
New to native? Getting Started With iOS Development
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
MSR iOS Tranining
MSR iOS TraniningMSR iOS Tranining
MSR iOS Tranining
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
Android deep dive
Android deep diveAndroid deep dive
Android deep dive
 
Android Development Basics
Android Development BasicsAndroid Development Basics
Android Development Basics
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Resume
ResumeResume
Resume
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
Desarrollo AIR Mobile
Desarrollo AIR MobileDesarrollo AIR Mobile
Desarrollo AIR Mobile
 
Anuradha_Resume_2016
Anuradha_Resume_2016Anuradha_Resume_2016
Anuradha_Resume_2016
 

Similaire à Code and Conquer with Globe Labs, October 27, 2012

Introduction to Eqela development
Introduction to Eqela developmentIntroduction to Eqela development
Introduction to Eqela development
jobandesther
 
androidPramming.ppt
androidPramming.pptandroidPramming.ppt
androidPramming.ppt
BijayKc16
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
Mizanur Sarker
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Jason Conger
 

Similaire à Code and Conquer with Globe Labs, October 27, 2012 (20)

Optimized Cross Platform Development
Optimized Cross Platform DevelopmentOptimized Cross Platform Development
Optimized Cross Platform Development
 
Introduction to Eqela development
Introduction to Eqela developmentIntroduction to Eqela development
Introduction to Eqela development
 
Synapseindia android apps application
Synapseindia android apps applicationSynapseindia android apps application
Synapseindia android apps application
 
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfTK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
 
Dload mobile development
Dload mobile developmentDload mobile development
Dload mobile development
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
 
iOS application development
iOS application developmentiOS application development
iOS application development
 
androidPramming.ppt
androidPramming.pptandroidPramming.ppt
androidPramming.ppt
 
Mobile development
Mobile developmentMobile development
Mobile development
 
Mobile development
Mobile developmentMobile development
Mobile development
 
Abeer_abdelsamee CV
Abeer_abdelsamee CVAbeer_abdelsamee CV
Abeer_abdelsamee CV
 
Sviluppo x platform con xamarin
Sviluppo x platform con xamarin Sviluppo x platform con xamarin
Sviluppo x platform con xamarin
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App Strategy
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
 

Plus de jobandesther (6)

Hackers vs Hackers
Hackers vs HackersHackers vs Hackers
Hackers vs Hackers
 
Automated testing of mobile applications on multiple platforms
Automated testing of mobile applications on multiple platformsAutomated testing of mobile applications on multiple platforms
Automated testing of mobile applications on multiple platforms
 
Mobile Game Development With Eqela (March 2014)
Mobile Game Development With Eqela (March 2014)Mobile Game Development With Eqela (March 2014)
Mobile Game Development With Eqela (March 2014)
 
Graphical User Interface Development with Eqela
Graphical User Interface Development with EqelaGraphical User Interface Development with Eqela
Graphical User Interface Development with Eqela
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
 
Eqela Core API and Utilities
Eqela Core API and UtilitiesEqela Core API and Utilities
Eqela Core API and Utilities
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Code and Conquer with Globe Labs, October 27, 2012

  • 1. Globe Corporate Showroom October 27, 2012 Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 2. Major mobile platforms Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 3. Major platforms (mobile + desktop) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 4. Mobile platform market shares (IDC) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 5. Mobile platform market shares (2015) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 6. Technical things that must be considered ● Programming language ● APIs and libraries ● Different versions of the operating system ● User interface design ● User interface implementation ● Development tools Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 7. Programming language Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 8. Programming language Apple iOS Apple iOS 17% Objective C 17% Objective C Windows Phone 20% C# Windows Phone 20% C# Android Android 44% Java 44% Java BlackBerry BlackBerry 13% C/C++ 13% C/C++ Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 9. “NATIVE” vs “NON-NATIVE” “NATIVE” is something that does not need an interpreter The primary language of any platform is “NATIVE” to the platform. All other languages on that platform are “NON- NATIVE”. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 10. APIs and libraries Android iOS Windows Phone User interface Android API Cocoa Touch / UIKit Silverlight framework Graphical rendering Immediate Immediate Retained model Networking API Standard Java Standard Posix / .NET CFNetwork Memory management Garbage collection Reference counting / Garbage collection manual Library format .jar .a / .so .dll Web browser WebKit WebKit Internet Explorer component Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 11. Example: Connecting a socket IOS / Objective C CFSocketRef socket = CFSocketCreate(NULL, PF_INET, SOCK_STREAM, IPPROTO_TCP, kCFSocketConnectCallBack, (CFSocketCallBack)ConnectCallBack, &CTX); struct sockaddr_in addr; memset(&addr, 0, sizeof(addr)); addr.sin_len = sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(PORT); addr.sin_addr.s_addr = INADDR_ANY; CFDataRef connectAddr = CFDataCreate(NULL, (unsigned char *)&addr, sizeof(addr)); CFSocketConnectToAddress(socket, connectAddr, −1); ANDROID / JAVA WINDOWS PHONE / C# try { IPEndPoint endpoint = InetAddress serverAddr = new IPEndPoint(ipAddress, PORT); InetAddress.getByName(serverIpAddress); Socket socket = Socket socket = new Socket(serverAddr, new Socket(AddressFamily.InterNetwork, serverPort); SocketType.Stream, } ProtocolType.Tcp); catch (UnknownHostException e1) { } catch (IOException e1) { } Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 12. Different versions of the operating system (As of June 2012; source Chitika) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 13. User interface design Windows Phone Android iOS Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 14. User interface implementation XAML (Windows Phone) Layout (Android) Storyboard (iOS) <phone:PhoneApplicationPage <?xml version="1.0" <?xml version="1.0" x:Class="eqela.samples.squar encoding="utf-8"?> encoding="UTF-8" e.MainPage" <LinearLayout standalone="no"?> xmlns="http://schemas.micros xmlns:android="http://sche <document oft.com/winfx/2006/xaml/prese mas.android.com/apk/res/a type="com.apple.InterfaceBu ntation" xmlns:x="http://schemas.micro ndroid" ilder3.CocoaTouch.Storyboa soft.com/winfx/2006/xaml" android:layout_width="fill_p rd.XIB" version="2.0" xmlns:phone="clr- arent" toolsVersion="2837" namespace:Microsoft.Phone.C android:layout_height="fill_p systemVersion="12A269" ontrols;assembly=Microsoft.Ph arent" targetRuntime="iOS.CocoaT one" xmlns:shell="clr- android:orientation="vertical ouch" namespace:Microsoft.Phone.S " ><TextView propertyAccessControl="non hell;assembly=Microsoft.Phon android:id="@+id/text" e" useAutolayout="YES" e" android:layout_width="wrap initialViewController="4"> xmlns:d="http://schemas.micro _content" <dependencies> soft.com/expression/blend/200 8" android:layout_height="wra <plugIn xmlns:mc="http://schemas.ope p_content" identifier="com.apple.Interfac nxmlformats.org/markup- android:text="Hello, I am a eBuilder.IBCocoaTouchPlugi compatibility/2006" TextView" /><Button n" version="1921"/> android:id="@+id/button" </dependencies> Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 15. Development tools Microsoft Visual Studio – Windows Phone Eclipse - Android Apple Xcode - iOS Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 16. Bottom line While targeting only the most popular mobile platforms, you will need to work with 10-20 different operating system platforms/versions, at least 3-4 different programming languages, each with different API libraries. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 17. How to make this work? Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 18. The usual solution (#1) ● Only work with one operating system “I will only make applications for Android” ● ● “I am an iOS DEVELOPER!” ● The upside: Easy to do. You only need to learn one language and ● API, and write your program using the matching tools. ● The downside: ● You limit the potential of your application (you cannot reach all users). ● Your future is tied to the target platform. (Eg. If Apple removes your app from the AppStore, it's over) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 19. How to expand? : PORTING ● Wikipedia: “Porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one on which it was originally designed.” ● Wikipedia: “Software is portable when the cost of porting it to a new platform is less than the cost of writing it from scratch.” ● → Traditional native applications (Android apps, iOS apps, etc.) are not portable. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 20. The usual solution (#2) ● Make several versions of your program, one for each platform ● Write the same program multiple times; first in Java, then Objective- C, then C# (often called “porting”) ● The upside: ● You will not limit the potential of your application, as you can now reach all your users. ● The downside: ● Massive amount of work in rewriting the same program over and over again. Very expensive if done professionally. Also not very rewarding for a programmer (doing the same work repeatedly). ● You end up with multiple codebases of the same program. Very tedious to maintain and develop further. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 21. The third way: CROSS PLATFORM DEVELOPMENT Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 22. Cross platform development ● Producing portable applications for multiple platforms using a single codebase ● Write a program only once, but use it on several platforms ● Depending on the cross platform development method, the applications may be native (not requiring interpretation) or non-native (interpreted in some manner) ● Especially the non-native approach has issues in performance, memory use and application size, which has caused many to abandon even the idea of cross platform development. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 23. The Eqela video http://www.youtube.com/watch?v=WcWf7SXGBv0 Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 24. Our solution: EQELA ● Eqela reads source code written in the Eqela programming language / API, and translates it to various other languages, targeting different APIs / platforms Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 25. Eqela is .. (#1) A modern, object oriented programming language ● Powerful, object oriented, easy to use, efficient to program ● Designed to fit the needs of the different target platforms ● Part of the C syntax family ● Instantly familiar to anyone with experience in C, C++, Java, C#, JavaScript Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 26. A sample program ● A cross-platform graphical “Hello world” application: class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } ● Works exactly the same way on all supported operating systems / devices Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 27. Eqela is .. (#2) An advanced compiler / programming language translator ● Converts a source programming language (Eqela) to other programming languages (Java, C#, C, JavaScript, ..) ● Generates project files / directory structures to be used by the development tools of the various target platforms ● Pulls in libraries to link with the application Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 28. Eqela is .. (#3) A cross platform development API ● A cross-platform API that works across programming languages ● All common functionalities, such as file I/O, networking, threading, data structures, .. ● Same API on any language and operating system Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 29. Eqela is .. (#4) A cross platform graphical user interface (GUI) API ● A rich set of user interface components and controls ● The controls are available and the GUI works across all platforms ● Mobile devices ● Desktop ● Web / HTML5 ● Develop your own controls Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 30. Some GUI components Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 31. Automatic scaling of user interfaces Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 32. Eqela is .. (#5) A development tool / environment Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 33. How it works Eqela C iOS iOS Libraries source SDK application code Java Eqela Android Android Eqela source Source SDK application Compiler code Code Javascript Run in code browser Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 34. How it works : Sample application class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } Main.java, Android Eqela Main.eq LayerWidget.java, Compiler SDK LabelWidget.java LayerWidget, Android LabelWidget application Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 35. 100% native Only native code → “100% native” No virtual machine added No interpreter added Main.java, Android Eqela Main.eq LayerWidget.java, Compiler SDK LabelWidget.java LayerWidget, Android LabelWidget application Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 36. Main.eq → Main.java class Main : LayerWidget { (EQELA) public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } package mk.test; public class Main extends eq.gui.LayerWidget { @Override public void initialize() { super.initialize(); ((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_ StringStatic_for_strptr("Hello world")))); } public Main() { } } (JAVA) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 37. Also type code in the native language class AndroidHTTPGet { public static bool execute(String url) { embed “java” {{{ org.apache.http.client.methods.HttpUriRequest hur = new org.apache.http.client.methods.HttpGet(url.to_strptr()); android.net.http.AndroidHttpClient hc = android.net.http.AndroidHttpClient.newInstance(“testing”); org.apache.http.HttpResponse resp = hc.execute(hur); if(resp == null) { return(false); } }}} return(true); } } → All platform specific features / APIs are accessible from Eqela code Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 38. Is this the only way to do cross platform development? Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 39. Cross platform development approach (#1) The “scripted” approach Unmodified iOS iOS Source code SDK application + Interpreter / Virtual machine For iOS Source code Competing Android In a scripting Development application language tool Unmodified Source code (JavaScript, + Lua, Ruby, ..) Interpreter / Android Virtual machine SDK For Android Run in browser (Adobe Air / Flex, Appcelerator, Mono / Unity, Corona, RhoMobile, ..) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 40. The “scripted approach” architecture APIs and libraries Application code Language interpreter / runtime Operating system (Adobe Air / Flex, Appcelerator, Mono / Unity, Corona, RhoMobile, ..) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 41. The “scripted approach” architecture Increases memory APIs and libraries Application code Makes application usage Installers much bigger Language interpreter / runtime Applications can only Reduces runtime Operating system Access selected Performance Parts of the native API Due to this approach being very popular, many consider cross platform development to be slow, high in memory use, and producing bigger installers. This is wrong. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 42. The Mono / Android architecture (Source: http://docs.xamarin.com/Android/Guides/Advanced_Topics/Architecture) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 43. Unity (includes Mono) on Android C++ code Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 44. Cross platform development approach (#2) The “MoSync” approach Runtime / iOS C++ class Proprietary Virtual application Library / header bytecode machine Files Android The GNU C application Compiler (GCC) Secondary Compiler C++ source (MoSync) code Windows Phone application Very similar to the “scripted” approach, Run in only somewhat more complicated browser (MoSync) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 45. Cross platform development approach (#3) The “C++” approach iOS Cross application Plaftorm Class library In the specific language (Usually C++) BlackBerry Playbook SDK / application Source code compiler In a specific Language (Usually C++) Android application Windows + Truly native (100%) Run in Phone + High performance browser application - Limited platform support (not really cross platform) (Marmalade, Qt, WxWidgets) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 46. Cross platform development approach (#4) The “embed a web browser” approach Run in C source code browser Libraries That opens a Browser and Displays the program iOS iOS SDK application Source Code in HTML, CSS, “Compiler” JavaScript Android Android SDK application Java source code That opens a Browser and - Very poor performance Displays the - Suitable for only “web-style” apps program - Limited access to platform APIs + Easy way to convert existing websites to “native apps” (PhoneGap) Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 47. Cross platform development approach (#5) The “source code conversion” approach Libraries C iOS iOS source SDK application code Java Android Android Source source Compiler SDK application Code code + Truly native (100%) on any platform Javascript Run in + High performance code browser + Optimized memory use + Small installer size + Unrestricted API access Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 48. Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 49. Comparison : “Hello world” application ● The “scripted” approach: ● Appcelerator Titanium: 8MB ● Mono: 4MB ● The “embed a web browser” approach: ● PhoneGap: ~300KB ● The “source code conversion” approach ● Eqela: 96KB Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 50. How to learn more about Eqela? Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 51. Sign up and learn more details ● Free registration at http://www.eqela.com/register ● Browse through the documentation, tutorials, sample programs and technical information Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 52. Try it out for yourself ● Once registered, try Eqela programming at http://www.eqela.com/try ● Make short programs and compile to different platforms ● Get familiar to the language and see Eqela in action Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 53. Get one ● Choose any of the supported platforms where you wish for your application to work ● Install the Eqela compiler on your computer; no internet connection required ● Place your order at http://www.eqela.com/buy Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 54. Supported platforms PLATFORM TOOLS AVAILABLE EQELA LIVE SUBSCRIPTION Microsoft Windows Yes Yes Mac OS X Yes Yes Linux Yes Yes Igellle Yes Yes Android Yes Yes HTML5 / JavaScript Yes Yes Apple iOS Yes BlackBerry / Java Yes BlackBerry / QNX Yes Windows CE Yes Windows Mobile Yes Windows Phone Yes Symbian OS Yes Meego / Jolla Coming soon Firefox OS Coming soon Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 55. Licensing cost USD150 / platform / programmer / year Copyright (c) 2012 Job and Esther Technologies, Inc.
  • 56. Thank you Copyright (c) 2012 Job and Esther Technologies, Inc.