SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Pete Helgren
                                     pete@valadd.com

        Developing Mobile Applications for i using Open
                        Source Tools




                                   Value Added Software, Inc
                                          801.581.1154

                                      1511 East Harvard Ave
                                     Salt Lake City, UT 84105




                                                                                       1
© 2012 Value Added Software, Inc        petesworkshop.com       www.opensource4i.com
What will you get from this
                    session?
●   You will know the differences between a web
     application, a mobile web application and a
     native mobile application.
●   How to change your web applications to
     mobile web applications.
●   How to (easily) take a mobile web application
     and create a “native” mobile application
●   How to write a simple Android application (if
     we have time).
                                                                              2
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Agenda


          To rip off an well known book from the
                            60's:

          Zen and the art of Developing Mobile
          Applications using Open Source Tools




                                                                              3
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Agenda
●   Mobile is all about the client (so where does i
     fit in?)
●   Rethinking Web Development
            –   Ajax
            –   HTML and HTML5
            –   Page, page construction and paging.
            –   JSON
            –   M is for minimalist
●   Examples of “classic” web design
                                                                              4
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Agenda
●   Deconstructing “classic” design
●   Reassembly as HTML5 and “Web 2.0”
     techniques
●   Tweaking HTML5 for Mobile applications e.g.
     Building a mobile web application




                                                                              5
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Agenda
●   Mobile application development framework
     review
●   Developing an Android application
            –   Natively
            –   Using PhoneGap
●   Review some examples including a Common
     Schedule Organizer web application!




                                                                              6
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Mobile is about the client

                                   Web Apps

                                   Native Apps

                                            i?
                                                                                7
© 2012 Value Added Software, Inc     petesworkshop.com   www.opensource4i.com
Mobile means rethinking web
                   development
                              Two basic principles:

                 Don't waste users bandwidth on
                   something they don't need

      Be a good citizen – Conservation is good.




                                                                              8
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Wasting bandwidth
                                       Images
                                      RSS feeds
                                   Tracking Plugins
                                   Whole js libraries




                                                                                  9
© 2012 Value Added Software, Inc       petesworkshop.com   www.opensource4i.com
Conserve
            Hang on to data with explicit caching
                       (localstorage)

                      Refresh only when needed.

              We are back at the good old days
                        (mid 1990's):
             Paying per kb and slow connections


                                                                              10
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Rethinking Web Development

                                       AJAX
                          (Asynchronous Javascript and XML)
                        Nothing new here(1999)...move along


                        Introduced my MS in IE 5 (XMLHTTP)
            The much maligned IE 6 further extended capabilities
                              Thanks to the browser wars....




                                                                                 11
© 2012 Value Added Software, Inc     petesworkshop.com    www.opensource4i.com
Rethinking Web Development

                                   HTML5 – New?


                               Been around since 2004


                               Big hitter improvements:


New markup: <nav> <footer><video> <audio> and others.
            New features: validation, client side storage.


                                                                                 12
© 2012 Value Added Software, Inc     petesworkshop.com    www.opensource4i.com
Rethinking Web Development

                                   Pages and paging




                                                                                 13
© 2012 Value Added Software, Inc      petesworkshop.com   www.opensource4i.com
Rethinking Web Development
                                   Conservation Strategies


                                   Pages and paging
                                       (mobile web app)

                                             <div>


                                             <div>


                                             <div>


                                             <div>


                                             <div>


                                                                                    14
© 2012 Value Added Software, Inc        petesworkshop.com    www.opensource4i.com
Rethinking Web Development




                                      JSON
                           (Javascript Object Notation)

              Lightweight – simple to transport (AJAX)
             Javascript already knows what to do with it
                            (it's an Object!)




                                                                              15
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Pagination the AJAX way

    My Web Page


                                     javascript

                                   <div id=page1></div>



                                     My Web Page

                                       Page 1




                                                                                   16
© 2012 Value Added Software, Inc        petesworkshop.com   www.opensource4i.com
M is for minimal




                                                                                 17
© 2012 Value Added Software, Inc      petesworkshop.com   www.opensource4i.com
Deconstructing “classic” web
                       design



               Take a look at this web site (ugly)

   Http://opensourceoni.com/baseDemo/Demo

       Simple app, two pages, gets messages from IBM i




                                                                              18
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Deconstructing “classic” web
                       design


Another simple example that checks on whether
             a port is open or not.

       Hosted on i. Java App. Calls IBM i API's

           http://opensourceoni.com/baseChkPort/Demo




                                                                              19
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Reassembly as HTML5 and
                “Web 2.0” techniques




    http://opensourceoni.com/mobile/cgi_adhstm.pgm




                                                                              20
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Demo – Walk through
●   RPG – 5250
●   CGIDEV2 – Ugly web based
●   CGIDEV2 – Pretty web based
●   CGIDEV2 – Pretty, web based, using local
     storage (more mobile-ish...)
●   PHP – Ugly
●   PHP – Pretty
●   PHP – Pretty using local storage
                                                                              21
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Web Server Info

●   Apache is the front end to all of these web
     applications (HTTP Server)
●   You need to add Apache directives to map
     URL's to the CGIDEV2 programs.
●


●


●   Lets take a look


                                                                              22
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
So you still want to build a
                native mobile app?


                             Choose a framework.

     Many are based on Eclipse which is a
   comfortable transition for the RDp, EGL and
                Zend Studio folks.



                                                                              23
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Standard Apache Directives

    # Configuration originally created by Create HTTP Server wizard on Mon Jul
    25 12:31:00 MDT 2011
    LoadModule proxy_module
    /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
    LoadModule proxy_http_module
    /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
    LoadModule proxy_connect_module
    /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
    LoadModule proxy_ftp_module
    /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
    LoadModule zend_enabler_module
    /QSYS.LIB/QHTTPSVR.LIB/QZFAST.SRVPGM




                                                                                 24
© 2012 Value Added Software, Inc   petesworkshop.com      www.opensource4i.com
ScriptAliasMatch

                    Map URL's to CGIDEV2 Programs
          ScriptAliasMatch /mobile/(.*) /qsys.lib/mobile.lib/$1
          Alias /mobilejs /www/mobileapps/htdocs/mobile/js

          # MobileREM directives
          ScriptAliasMatch /mobilerem/(.*) /qsys.lib/mobilerem.lib/$1
          Alias /mobileremjs /www/mobileapps/htdocs/mobilerem/js
          Alias /mobileremcss /www/mobileapps/htdocs/mobilerem/css




                                                                                         25
© 2012 Value Added Software, Inc    petesworkshop.com             www.opensource4i.com
Set Access permissions
       <Directory /www/mobileapps/htdocs>
         Order Allow,Deny
         Allow From all
       </Directory>

         <Directory /www/mobileapps/htdocs/mobile/js>
           Options None
           order allow,deny
           allow from all
         </Directory>

         <Directory /www/mobileapps/htdocs/mobilerem/js>
           Options None
           order allow,deny
           allow from all
         </Directory>

         <Directory /www/mobileapps/htdocs/mobilerem/css>
           Options None
           order allow,deny
           allow from all
         </Directory>
         <Directory /www/mobileapps/htdocs/mobilerem>
           Options None
           order allow,deny
           allow from all
         </Directory>


                                                                                    26
© 2012 Value Added Software, Inc         petesworkshop.com   www.opensource4i.com
More permissions
                   <Directory /qsys.lib/mobilerem.lib>
                      order allow,deny
                      allow from all
                      Options -ExecCGI
                      CGIConvMode %%EBCDIC/EBCDIC%%
                    </Directory>

                    <Directory /www/mobileapps/htdocs/phpdemo>
                      Options None
                      order allow,deny
                      allow from all
                    </Directory>

                    <Directory /qsys.lib/mobile.lib>
                      order allow,deny
                      allow from all
                      Options -ExecCGI
                      CGIConvMode %%EBCDIC/EBCDIC%%
                    </Directory>

                                                                                 27
© 2012 Value Added Software, Inc   petesworkshop.com      www.opensource4i.com
Now lets jump into Code


      ● RPG
      ● PHP


      ● Java (if you want)




                                                                              28
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Possible Frameworks
●   Xcode – iPhone development
●   Visual Studio – Windows Mobile
●   Eclipse based
            –   PhoneGap
            –   Titanium
            –   Rhomobile
            –   Blackberry Eclipse plugin
            –   Android SDK – Eclipse Plugin
            –   WebOS (Palm) Eclipse Plugin
                                                                              29
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Possible Frameworks
                     Most popular target devices:

                                     iPhone
                                    Android
                                   Blackberry

     I am using PhoneGap for mobile apps that
         require multi-platform deployment.
             Write javascript, deploy to:
                       Android
                     Blackberry
                       iPhone
                   (requires Mac to compile Objective C code)
                                                                              30
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Build a “native” Android App

        Aaron Bartell also has some resources:

                   http://www.mowyourlawn.com

    http://www.SureYouCanHaveTheKeys.com

                 http://www.systeminetwork.com
  (Aaron focuses on Android Native only, so you'll need a little Java
                           background)



                                                                              31
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Build a “native” Android App

GREAT tutorial on native Android Development:

http://www.smashingmagazine.com/2010/10/25/get-started-
            developing-for-android-with-eclipse/


                Two part series and absolutely excellent

   (can also Google search for Android and BrewClock to find the articles)




                                                                              32
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Building “native” android application




Plenty of resources on the web to get you started
                  with Android.

                          Good resources at
                     http://developer.android.com



                                                                              33
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Let's build one!




                                                                                34
© 2012 Value Added Software, Inc     petesworkshop.com   www.opensource4i.com
Building a PhoneGap application for
                           Android




PhoneGap is primarily a framework for running
  javascript enabled web pages as “native”
                applications.




                                                                              35
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
The anatomy of the PhoneGap application



  Create the page using any HTML5 compliant
   editor and run it in a fully HTML5 compliant
              browser, like Chrome.

          Bring it in as a resource to PhoneGap.

     Wire it up to Android or iPhone API's using
                     JavaScript.


                                                                              36
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
The Anatomy of a PhoneGap
                        application.




                                   Let's take a look.




                                                                                  37
© 2012 Value Added Software, Inc       petesworkshop.com   www.opensource4i.com
Review
●   Mobile development is about the client
●   Mobile development uses:
            –   HTML5 (could use HTML4- not recommended)
            –   AJAX
            –   Lightweight data transport
                         ●   JSON
                         ●   XML
                         ●   YAML
●   Native app development uses the same
     components but resides on the device
     (client-server)
                                                                               38
© 2012 Value Added Software, Inc    petesworkshop.com   www.opensource4i.com
The Common Schedule
                      Organizer


             Web version found here:
  http://opensourceoni.com/schedule/GetWeb?
                 action=HTML5

  Can be accessed from any HTML5 capable
browser. The localstorage option requires webkit
                based browser


                                                                              39
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com
Thanks!

            Blog update soon with a step by step:

        http://www.petesworkshop.com/blog_wp/

                Contact me at: pete@valadd.com

  (put “Common” somewhere in the subject line)

www.petesworkshop.com/downloads/MobileAppDemo.zip

                                                                              40
© 2012 Value Added Software, Inc   petesworkshop.com   www.opensource4i.com

Mais conteúdo relacionado

Mais procurados

Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 users
Michael Chaize
 
AAAI2012 - Crowd Sourcing Web Service Annotations
AAAI2012 - Crowd Sourcing Web Service AnnotationsAAAI2012 - Crowd Sourcing Web Service Annotations
AAAI2012 - Crowd Sourcing Web Service Annotations
INSEMTIVES project
 

Mais procurados (19)

Fatc - Productivity by Design
Fatc - Productivity by DesignFatc - Productivity by Design
Fatc - Productivity by Design
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
 
Oop2012 mobile workshops
Oop2012 mobile workshopsOop2012 mobile workshops
Oop2012 mobile workshops
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboard
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12
 
Montpellier - Flex UG
Montpellier - Flex UGMontpellier - Flex UG
Montpellier - Flex UG
 
Xplatform mobile development
Xplatform mobile developmentXplatform mobile development
Xplatform mobile development
 
Flash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyFlash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex baby
 
Drupal + HTML5 + CSS3 + JS = Rich Internet Application
Drupal + HTML5 + CSS3 + JS = Rich Internet ApplicationDrupal + HTML5 + CSS3 + JS = Rich Internet Application
Drupal + HTML5 + CSS3 + JS = Rich Internet Application
 
Best practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devicesBest practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devices
 
Jax2001 adobe keynote
Jax2001 adobe keynoteJax2001 adobe keynote
Jax2001 adobe keynote
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 users
 
Adobe flex at jax london 2011
Adobe flex at  jax london 2011Adobe flex at  jax london 2011
Adobe flex at jax london 2011
 
Over the air 2.5 - Adobe AIR for Android
Over the air 2.5 - Adobe AIR for AndroidOver the air 2.5 - Adobe AIR for Android
Over the air 2.5 - Adobe AIR for Android
 
2012.09.11 w3 c html5 mobile paradies
2012.09.11 w3 c html5   mobile paradies2012.09.11 w3 c html5   mobile paradies
2012.09.11 w3 c html5 mobile paradies
 
Kony Mobile Management
Kony Mobile ManagementKony Mobile Management
Kony Mobile Management
 
AAAI2012 - Crowd Sourcing Web Service Annotations
AAAI2012 - Crowd Sourcing Web Service AnnotationsAAAI2012 - Crowd Sourcing Web Service Annotations
AAAI2012 - Crowd Sourcing Web Service Annotations
 
RIA
RIARIA
RIA
 
CEDEC2012 Starling 開発
CEDEC2012 Starling 開発CEDEC2012 Starling 開発
CEDEC2012 Starling 開発
 

Destaque (9)

Version Control using Plastic (SCM) by Tonny
Version Control using Plastic (SCM) by TonnyVersion Control using Plastic (SCM) by Tonny
Version Control using Plastic (SCM) by Tonny
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
 
5. scm
5. scm5. scm
5. scm
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration management
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 

Semelhante a Developing mobile applications for i using open source tools Venna 2012

Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
Sanjay Patel
 

Semelhante a Developing mobile applications for i using open source tools Venna 2012 (20)

Standard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data ManagementStandard Issue: Preparing for the Future of Data Management
Standard Issue: Preparing for the Future of Data Management
 
CREATIVEHOPE, INC. Corporate Overview
CREATIVEHOPE, INC. Corporate OverviewCREATIVEHOPE, INC. Corporate Overview
CREATIVEHOPE, INC. Corporate Overview
 
Tackling Enterprise App Development with Ionic
Tackling Enterprise App Development with IonicTackling Enterprise App Development with Ionic
Tackling Enterprise App Development with Ionic
 
HTML5 for Mobile - When and Why
HTML5 for Mobile - When and WhyHTML5 for Mobile - When and Why
HTML5 for Mobile - When and Why
 
Should you say no to HTML5?
Should you say no to HTML5?Should you say no to HTML5?
Should you say no to HTML5?
 
Mse august13 (2/3)
Mse august13 (2/3)Mse august13 (2/3)
Mse august13 (2/3)
 
IT Technologies Career perspective
IT Technologies   Career perspectiveIT Technologies   Career perspective
IT Technologies Career perspective
 
Why should startups opt for ionic app development
Why should startups opt for ionic app developmentWhy should startups opt for ionic app development
Why should startups opt for ionic app development
 
A dummies guide to native, html5 and hybrid mobile apps
A dummies guide to native, html5 and hybrid mobile appsA dummies guide to native, html5 and hybrid mobile apps
A dummies guide to native, html5 and hybrid mobile apps
 
CapitolJS: Enyo, Node.js, & the State of webOS
CapitolJS: Enyo, Node.js, & the State of webOSCapitolJS: Enyo, Node.js, & the State of webOS
CapitolJS: Enyo, Node.js, & the State of webOS
 
Native v s hybrid
Native v s hybridNative v s hybrid
Native v s hybrid
 
Resume
ResumeResume
Resume
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
 
Drupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_printDrupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_print
 
Share point 2013 unveiled
Share point 2013 unveiledShare point 2013 unveiled
Share point 2013 unveiled
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
 
12 Reasons to Choose NodeJS for Product Development.pdf
12 Reasons to Choose NodeJS for Product Development.pdf12 Reasons to Choose NodeJS for Product Development.pdf
12 Reasons to Choose NodeJS for Product Development.pdf
 
Java enterprise paradise
Java enterprise paradiseJava enterprise paradise
Java enterprise paradise
 
Success Stories by Novatore Solutions
Success Stories by Novatore SolutionsSuccess Stories by Novatore Solutions
Success Stories by Novatore Solutions
 
Bp209
Bp209Bp209
Bp209
 

Mais de COMMON Europe

Compiling the Compiler
Compiling the CompilerCompiling the Compiler
Compiling the Compiler
COMMON Europe
 

Mais de COMMON Europe (20)

What's New in WebSphere Application Server
What's New in WebSphere Application ServerWhat's New in WebSphere Application Server
What's New in WebSphere Application Server
 
Compiling the Compiler
Compiling the CompilerCompiling the Compiler
Compiling the Compiler
 
Workload Groups overview updates
Workload Groups overview updatesWorkload Groups overview updates
Workload Groups overview updates
 
Why i - Common Europe 2012
Why i - Common Europe 2012Why i - Common Europe 2012
Why i - Common Europe 2012
 
The Ruby OpenSSL extension
The Ruby OpenSSL extensionThe Ruby OpenSSL extension
The Ruby OpenSSL extension
 
Using Ruby on IBM i (i5/OS)
Using Ruby on IBM i (i5/OS)Using Ruby on IBM i (i5/OS)
Using Ruby on IBM i (i5/OS)
 
IBM Systems Director Navigator for i
IBM Systems Director Navigator for iIBM Systems Director Navigator for i
IBM Systems Director Navigator for i
 
IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012IBM i Trends & Directions Common Europe 2012
IBM i Trends & Directions Common Europe 2012
 
IBM i Technology Refreshes Overview 2012 06-04
IBM i Technology Refreshes Overview 2012 06-04IBM i Technology Refreshes Overview 2012 06-04
IBM i Technology Refreshes Overview 2012 06-04
 
IBM i 7.1 & TRs CEC 2012
IBM i 7.1 & TRs CEC 2012IBM i 7.1 & TRs CEC 2012
IBM i 7.1 & TRs CEC 2012
 
DB2 Web Query whats new
DB2 Web Query whats newDB2 Web Query whats new
DB2 Web Query whats new
 
Access client solutions overview
Access client solutions overviewAccess client solutions overview
Access client solutions overview
 
What's new with Zend server
What's new with Zend serverWhat's new with Zend server
What's new with Zend server
 
RPG investment
RPG investmentRPG investment
RPG investment
 
Php arrays for RPG programmers
Php arrays for RPG programmersPhp arrays for RPG programmers
Php arrays for RPG programmers
 
Open source report writing tools for IBM i Vienna 2012
Open source report writing tools for IBM i  Vienna 2012Open source report writing tools for IBM i  Vienna 2012
Open source report writing tools for IBM i Vienna 2012
 
Moving 5.4 to 7.1 AB
Moving 5.4 to 7.1 ABMoving 5.4 to 7.1 AB
Moving 5.4 to 7.1 AB
 
Introduction to My SQL
Introduction to My SQLIntroduction to My SQL
Introduction to My SQL
 
IBM CEC 2012 Storage june 11, 2012
IBM CEC 2012 Storage june 11, 2012IBM CEC 2012 Storage june 11, 2012
IBM CEC 2012 Storage june 11, 2012
 
Getting started with PHP on IBM i
Getting started with PHP on IBM iGetting started with PHP on IBM i
Getting started with PHP on IBM i
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Developing mobile applications for i using open source tools Venna 2012

  • 1. Pete Helgren pete@valadd.com Developing Mobile Applications for i using Open Source Tools Value Added Software, Inc 801.581.1154 1511 East Harvard Ave Salt Lake City, UT 84105 1 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 2. What will you get from this session? ● You will know the differences between a web application, a mobile web application and a native mobile application. ● How to change your web applications to mobile web applications. ● How to (easily) take a mobile web application and create a “native” mobile application ● How to write a simple Android application (if we have time). 2 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 3. Agenda To rip off an well known book from the 60's: Zen and the art of Developing Mobile Applications using Open Source Tools 3 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 4. Agenda ● Mobile is all about the client (so where does i fit in?) ● Rethinking Web Development – Ajax – HTML and HTML5 – Page, page construction and paging. – JSON – M is for minimalist ● Examples of “classic” web design 4 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 5. Agenda ● Deconstructing “classic” design ● Reassembly as HTML5 and “Web 2.0” techniques ● Tweaking HTML5 for Mobile applications e.g. Building a mobile web application 5 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 6. Agenda ● Mobile application development framework review ● Developing an Android application – Natively – Using PhoneGap ● Review some examples including a Common Schedule Organizer web application! 6 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 7. Mobile is about the client Web Apps Native Apps i? 7 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 8. Mobile means rethinking web development Two basic principles: Don't waste users bandwidth on something they don't need Be a good citizen – Conservation is good. 8 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 9. Wasting bandwidth Images RSS feeds Tracking Plugins Whole js libraries 9 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 10. Conserve Hang on to data with explicit caching (localstorage) Refresh only when needed. We are back at the good old days (mid 1990's): Paying per kb and slow connections 10 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 11. Rethinking Web Development AJAX (Asynchronous Javascript and XML) Nothing new here(1999)...move along Introduced my MS in IE 5 (XMLHTTP) The much maligned IE 6 further extended capabilities Thanks to the browser wars.... 11 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 12. Rethinking Web Development HTML5 – New? Been around since 2004 Big hitter improvements: New markup: <nav> <footer><video> <audio> and others. New features: validation, client side storage. 12 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 13. Rethinking Web Development Pages and paging 13 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 14. Rethinking Web Development Conservation Strategies Pages and paging (mobile web app) <div> <div> <div> <div> <div> 14 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 15. Rethinking Web Development JSON (Javascript Object Notation) Lightweight – simple to transport (AJAX) Javascript already knows what to do with it (it's an Object!) 15 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 16. Pagination the AJAX way My Web Page javascript <div id=page1></div> My Web Page Page 1 16 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 17. M is for minimal 17 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 18. Deconstructing “classic” web design Take a look at this web site (ugly) Http://opensourceoni.com/baseDemo/Demo Simple app, two pages, gets messages from IBM i 18 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 19. Deconstructing “classic” web design Another simple example that checks on whether a port is open or not. Hosted on i. Java App. Calls IBM i API's http://opensourceoni.com/baseChkPort/Demo 19 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 20. Reassembly as HTML5 and “Web 2.0” techniques http://opensourceoni.com/mobile/cgi_adhstm.pgm 20 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 21. Demo – Walk through ● RPG – 5250 ● CGIDEV2 – Ugly web based ● CGIDEV2 – Pretty web based ● CGIDEV2 – Pretty, web based, using local storage (more mobile-ish...) ● PHP – Ugly ● PHP – Pretty ● PHP – Pretty using local storage 21 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 22. Web Server Info ● Apache is the front end to all of these web applications (HTTP Server) ● You need to add Apache directives to map URL's to the CGIDEV2 programs. ● ● ● Lets take a look 22 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 23. So you still want to build a native mobile app? Choose a framework. Many are based on Eclipse which is a comfortable transition for the RDp, EGL and Zend Studio folks. 23 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 24. Standard Apache Directives # Configuration originally created by Create HTTP Server wizard on Mon Jul 25 12:31:00 MDT 2011 LoadModule proxy_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM LoadModule proxy_http_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM LoadModule proxy_connect_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM LoadModule proxy_ftp_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM LoadModule zend_enabler_module /QSYS.LIB/QHTTPSVR.LIB/QZFAST.SRVPGM 24 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 25. ScriptAliasMatch Map URL's to CGIDEV2 Programs ScriptAliasMatch /mobile/(.*) /qsys.lib/mobile.lib/$1 Alias /mobilejs /www/mobileapps/htdocs/mobile/js # MobileREM directives ScriptAliasMatch /mobilerem/(.*) /qsys.lib/mobilerem.lib/$1 Alias /mobileremjs /www/mobileapps/htdocs/mobilerem/js Alias /mobileremcss /www/mobileapps/htdocs/mobilerem/css 25 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 26. Set Access permissions <Directory /www/mobileapps/htdocs> Order Allow,Deny Allow From all </Directory> <Directory /www/mobileapps/htdocs/mobile/js> Options None order allow,deny allow from all </Directory> <Directory /www/mobileapps/htdocs/mobilerem/js> Options None order allow,deny allow from all </Directory> <Directory /www/mobileapps/htdocs/mobilerem/css> Options None order allow,deny allow from all </Directory> <Directory /www/mobileapps/htdocs/mobilerem> Options None order allow,deny allow from all </Directory> 26 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 27. More permissions <Directory /qsys.lib/mobilerem.lib> order allow,deny allow from all Options -ExecCGI CGIConvMode %%EBCDIC/EBCDIC%% </Directory> <Directory /www/mobileapps/htdocs/phpdemo> Options None order allow,deny allow from all </Directory> <Directory /qsys.lib/mobile.lib> order allow,deny allow from all Options -ExecCGI CGIConvMode %%EBCDIC/EBCDIC%% </Directory> 27 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 28. Now lets jump into Code ● RPG ● PHP ● Java (if you want) 28 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 29. Possible Frameworks ● Xcode – iPhone development ● Visual Studio – Windows Mobile ● Eclipse based – PhoneGap – Titanium – Rhomobile – Blackberry Eclipse plugin – Android SDK – Eclipse Plugin – WebOS (Palm) Eclipse Plugin 29 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 30. Possible Frameworks Most popular target devices: iPhone Android Blackberry I am using PhoneGap for mobile apps that require multi-platform deployment. Write javascript, deploy to: Android Blackberry iPhone (requires Mac to compile Objective C code) 30 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 31. Build a “native” Android App Aaron Bartell also has some resources: http://www.mowyourlawn.com http://www.SureYouCanHaveTheKeys.com http://www.systeminetwork.com (Aaron focuses on Android Native only, so you'll need a little Java background) 31 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 32. Build a “native” Android App GREAT tutorial on native Android Development: http://www.smashingmagazine.com/2010/10/25/get-started- developing-for-android-with-eclipse/ Two part series and absolutely excellent (can also Google search for Android and BrewClock to find the articles) 32 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 33. Building “native” android application Plenty of resources on the web to get you started with Android. Good resources at http://developer.android.com 33 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 34. Let's build one! 34 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 35. Building a PhoneGap application for Android PhoneGap is primarily a framework for running javascript enabled web pages as “native” applications. 35 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 36. The anatomy of the PhoneGap application Create the page using any HTML5 compliant editor and run it in a fully HTML5 compliant browser, like Chrome. Bring it in as a resource to PhoneGap. Wire it up to Android or iPhone API's using JavaScript. 36 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 37. The Anatomy of a PhoneGap application. Let's take a look. 37 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 38. Review ● Mobile development is about the client ● Mobile development uses: – HTML5 (could use HTML4- not recommended) – AJAX – Lightweight data transport ● JSON ● XML ● YAML ● Native app development uses the same components but resides on the device (client-server) 38 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 39. The Common Schedule Organizer Web version found here: http://opensourceoni.com/schedule/GetWeb? action=HTML5 Can be accessed from any HTML5 capable browser. The localstorage option requires webkit based browser 39 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com
  • 40. Thanks! Blog update soon with a step by step: http://www.petesworkshop.com/blog_wp/ Contact me at: pete@valadd.com (put “Common” somewhere in the subject line) www.petesworkshop.com/downloads/MobileAppDemo.zip 40 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com