SlideShare a Scribd company logo
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

More Related Content

PDF
Responsive Web Design in Oracle Application Express
PDF
Presentation by Joe Bachana of DPCI at Lavacon 2012
PPTX
HTML5 / Mobile Web
PDF
Ria2010 - keynote - Evolution des RIA d'Entreprise
PDF
Flex and the city in London - Keynote
PDF
Jax2010 adobe lcds
PDF
Flex mobile for JUG
PDF
Ria2010 workshop dev mobile
Responsive Web Design in Oracle Application Express
Presentation by Joe Bachana of DPCI at Lavacon 2012
HTML5 / Mobile Web
Ria2010 - keynote - Evolution des RIA d'Entreprise
Flex and the city in London - Keynote
Jax2010 adobe lcds
Flex mobile for JUG
Ria2010 workshop dev mobile

What's hot (19)

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

Viewers also liked (9)

PDF
Version Control using Plastic (SCM) by Tonny
PPSX
SCM Process and smartBuild
PPT
PPTX
Software configuration management
PDF
software configuration management
PPTX
Ch5- Software Engineering 9
PDF
Software engineering lecture notes
PDF
Software Process Models
PPT
Software Process Models
Version Control using Plastic (SCM) by Tonny
SCM Process and smartBuild
Software configuration management
software configuration management
Ch5- Software Engineering 9
Software engineering lecture notes
Software Process Models
Software Process Models
Ad

Similar to Developing mobile applications for i using open source tools Venna 2012 (20)

PDF
Standard Issue: Preparing for the Future of Data Management
PDF
CREATIVEHOPE, INC. Corporate Overview
PDF
Tackling Enterprise App Development with Ionic
PDF
HTML5 for Mobile - When and Why
 
PPTX
Should you say no to HTML5?
PDF
Mse august13 (2/3)
PPTX
IT Technologies Career perspective
PDF
Why should startups opt for ionic app development
PDF
A dummies guide to native, html5 and hybrid mobile apps
PDF
CapitolJS: Enyo, Node.js, & the State of webOS
PDF
Native Mobile App Development_ Everything You Need to Know.pdf
PPTX
Native v s hybrid
DOC
PDF
Top 10 Best Web Development Technologies
PDF
Drupalcamp armedia phonegap_oct2012_print
PDF
Share point 2013 unveiled
PPTX
Hybrid Mobile Apps - Meetup
PDF
12 Reasons to Choose NodeJS for Product Development.pdf
PPTX
Java enterprise paradise
PDF
Success Stories by Novatore Solutions
Standard Issue: Preparing for the Future of Data Management
CREATIVEHOPE, INC. Corporate Overview
Tackling Enterprise App Development with Ionic
HTML5 for Mobile - When and Why
 
Should you say no to HTML5?
Mse august13 (2/3)
IT Technologies Career perspective
Why should startups opt for ionic app development
A dummies guide to native, html5 and hybrid mobile apps
CapitolJS: Enyo, Node.js, & the State of webOS
Native Mobile App Development_ Everything You Need to Know.pdf
Native v s hybrid
Top 10 Best Web Development Technologies
Drupalcamp armedia phonegap_oct2012_print
Share point 2013 unveiled
Hybrid Mobile Apps - Meetup
12 Reasons to Choose NodeJS for Product Development.pdf
Java enterprise paradise
Success Stories by Novatore Solutions

More from COMMON Europe (20)

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

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Dropbox Q2 2025 Financial Results & Investor Presentation
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Developing mobile applications for i using open source tools Venna 2012

  • 1. Pete Helgren [email protected] 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: [email protected] (put “Common” somewhere in the subject line) www.petesworkshop.com/downloads/MobileAppDemo.zip 40 © 2012 Value Added Software, Inc petesworkshop.com www.opensource4i.com