SlideShare uma empresa Scribd logo
1 de 42
Introduction to Module
     Development
       Aaron K. Saunders
          Founder/CTO
       Clearly Innovative Inc
        @aaronksaunders

    aaron@clearlyinnovative.com
About Me




           • Founder & CTO Clearly Innovative Inc.
           • Full stack development for mobile and
             web integrations w/javascript & nodejs
           • Appcelerator Platform Evangelist; Titan
           • IOS and Android Module Development
           • 2yrs of Appcelerator blogging
           • Working on book with ACS and Alloy
             Integration
What this
presentation is about
Android Topics


                 • Introduction to module development,
                   not advanced

                 • Basic integration of third party library
                   and intent based library

                 • Understand the Titanium Studio Menu
                   commands for scripts

                 • Understanding Ant build script on
                   Android
IOS Topics


             • Introduction to module development,
               not advanced

             • Basic integration of third party library

             • Understand the Titanium Studio Menu
               commands for scripts

             • Understanding command line scripts
What this
presentation is not
about
Out of Scope


               • Advanced view integration in modules

               • Additional information on NDK
                 integration on Android

               • Addressing complex third party library
                 conflicts on IOS
Android first because
it needs some love
Your Environment


              • Instructions on the wiki are your best
                starting point

              • Use the commands provided in
                Titanium Studio

              • Be sure you have followed instructions
                for setting up Titanium Studio
                 • Installing Java Development Tools
Android Module
Quickly
Create Android
Module           • Select “New Titanium
                   Mobile Module Project”
                   from Menu

                 • Fill out all of the fields
                   presented

                 • Save the project

                 • Edit the build.properties
                   to point to the
                   ANDROID_NDK path

                 • Run project
Run through script on
device
Add some
functionality
Skyhook SDK
Integration Steps


                • Import 3rd party library
                • Pass authentication credentials into
                  module
                • Setup callbacks in module
                • Pass results back from module
                • Render results
Edit app.js


              • Instantiate the module object

              • Create a proxy object

              • Provide credentials to module

              • Setup success and error callback

              • Execute API method on proxy object
Edit app.js
Edit module file


                   • Remove the template method calls
                     generated by script

                   • Create property for the username

                   • Create property for realm
Edit module file
Edit proxy file


                  • Get properties for username and
                    realm; framework does most of the
                    heavy lifting for you

                  • Get the callback functions from the
                    passed in parameters
Edit proxy file
Edit proxy file
Edit proxy file


                  • So now we have all the data in… We
                    need to get the data out

                  • Create hashMap, add the objects and
                    call our callback
Code for completed
module
IOS module
Your Environment


              • Instructions on the wiki are your best
                starting point

              • Use the commands provided in
                Titanium Studio

              • Be sure you have followed instructions
                for setting up Titanium Studio
                 • Installing IOS & Xcode
                    Development Tools
Card.io SDK
Integration Steps


                •   Import 3rd party library
                •   Pass application key into module
                •   Setup callbacks in module
                •   Pass results back from module
                •   Render results
Libraries &
Headers
Edit app.js


              • Instantiate the module object

              • Provide application key to module

              • Setup success and error callback

              • Execute API method on module
Edit app.js
Edit header file


                   • Set the interface for the card.io
                     delegate

                   • Set up private variable for the function
                     callback with success or error
                     information
Edit header file
Edit module file


                   • Remove the template method calls
                     generated by script

                   • Make sure we de-allocate any
                     memory that we have allocated

                   • Get the parameters from the
                     javascript passed into objective-c

                   • Make card.io API call to display card
                     capture information
Edit module file
Edit module file


                   • Handle the response from the UI after
                     it is rendered

                   • Handle the two delegates from API for
                     user cancel or data entered

                   • Pass a new hashmap containing
                     results back to the javascript app
Edit module file
Edit module file
OVERLOAD!!


             • Blog posting next two weeks

             • All code provided on github

             • Additional Intent based module
               included
Aaron K. Saunders
     @aaronksaunders

aaron@clearlyinnovative.com
 blog.clearlyinnovative.com

Mais conteúdo relacionado

Mais procurados

Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzicoÜmit Ünal
 
BMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenBMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenMert Çalışkan
 
Webrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous deliveryWebrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous deliveryHakan ERDOGAN
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServicesMert Çalışkan
 
Enhance existing REST APIs (e.g. Facebook Graph API) with code completion us...
Enhance existing REST APIs  (e.g. Facebook Graph API) with code completion us...Enhance existing REST APIs  (e.g. Facebook Graph API) with code completion us...
Enhance existing REST APIs (e.g. Facebook Graph API) with code completion us...johannes_fiala
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...CloudBees
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMichael Palotas
 
Ciprian redinciuc continuous integration with jenkins for i os
Ciprian redinciuc   continuous integration with jenkins for i osCiprian redinciuc   continuous integration with jenkins for i os
Ciprian redinciuc continuous integration with jenkins for i osCodecamp Romania
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkinsVinay H G
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsJames Strong
 
Developers Use Bitbucket and So Can You
Developers Use Bitbucket and So Can YouDevelopers Use Bitbucket and So Can You
Developers Use Bitbucket and So Can YouAtlassian
 
ColdFusion Builder extensions (CFCamp 2012)
ColdFusion Builder extensions (CFCamp 2012)ColdFusion Builder extensions (CFCamp 2012)
ColdFusion Builder extensions (CFCamp 2012)Guust Nieuwenhuis
 
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannNCCOMMS
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Arun Gupta
 
Android talks #08 dagger2
Android talks #08   dagger2Android talks #08   dagger2
Android talks #08 dagger2Infinum
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Kile Niklawski
 
Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015johannes_fiala
 

Mais procurados (20)

Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzico
 
BMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenBMO - Intelligent Projects with Maven
BMO - Intelligent Projects with Maven
 
Webrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous deliveryWebrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous delivery
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServices
 
Enhance existing REST APIs (e.g. Facebook Graph API) with code completion us...
Enhance existing REST APIs  (e.g. Facebook Graph API) with code completion us...Enhance existing REST APIs  (e.g. Facebook Graph API) with code completion us...
Enhance existing REST APIs (e.g. Facebook Graph API) with code completion us...
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driver
 
Azure Resource Manager (ARM) Templates
Azure Resource Manager (ARM) TemplatesAzure Resource Manager (ARM) Templates
Azure Resource Manager (ARM) Templates
 
Ciprian redinciuc continuous integration with jenkins for i os
Ciprian redinciuc   continuous integration with jenkins for i osCiprian redinciuc   continuous integration with jenkins for i os
Ciprian redinciuc continuous integration with jenkins for i os
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
Developers Use Bitbucket and So Can You
Developers Use Bitbucket and So Can YouDevelopers Use Bitbucket and So Can You
Developers Use Bitbucket and So Can You
 
ColdFusion Builder extensions (CFCamp 2012)
ColdFusion Builder extensions (CFCamp 2012)ColdFusion Builder extensions (CFCamp 2012)
ColdFusion Builder extensions (CFCamp 2012)
 
Shraddha_Muchandi
Shraddha_MuchandiShraddha_Muchandi
Shraddha_Muchandi
 
Arif_Shaik_CV
Arif_Shaik_CVArif_Shaik_CV
Arif_Shaik_CV
 
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Android talks #08 dagger2
Android talks #08   dagger2Android talks #08   dagger2
Android talks #08 dagger2
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015
 

Destaque

Codestrong 2012 breakout session introduction to mobile web and best practices
Codestrong 2012 breakout session   introduction to mobile web and best practicesCodestrong 2012 breakout session   introduction to mobile web and best practices
Codestrong 2012 breakout session introduction to mobile web and best practicesAxway Appcelerator
 
Ketan Majmudar: From Kitchen Sink to App: Real World Case Studies
Ketan Majmudar: From Kitchen Sink to App: Real World Case StudiesKetan Majmudar: From Kitchen Sink to App: Real World Case Studies
Ketan Majmudar: From Kitchen Sink to App: Real World Case StudiesAxway Appcelerator
 
Ingo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveIngo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveAxway Appcelerator
 
Kevin Whinnery: Write Better JavaScript
Kevin Whinnery: Write Better JavaScriptKevin Whinnery: Write Better JavaScript
Kevin Whinnery: Write Better JavaScriptAxway Appcelerator
 
Codestrong 2012 keynote jeff haynie, appcelerator's ceo
Codestrong 2012 keynote   jeff haynie, appcelerator's ceoCodestrong 2012 keynote   jeff haynie, appcelerator's ceo
Codestrong 2012 keynote jeff haynie, appcelerator's ceoAxway Appcelerator
 
Codestrong 2012 keynote nolan wright, appcelerator's cto
Codestrong 2012 keynote   nolan wright, appcelerator's ctoCodestrong 2012 keynote   nolan wright, appcelerator's cto
Codestrong 2012 keynote nolan wright, appcelerator's ctoAxway Appcelerator
 
Codestrong 2012 breakout session designing the ultimate user experience
Codestrong 2012 breakout session   designing the ultimate user experienceCodestrong 2012 breakout session   designing the ultimate user experience
Codestrong 2012 breakout session designing the ultimate user experienceAxway Appcelerator
 
Jeff English: Demystifying Module Development - How to Extend Titanium
Jeff English: Demystifying Module Development - How to Extend TitaniumJeff English: Demystifying Module Development - How to Extend Titanium
Jeff English: Demystifying Module Development - How to Extend TitaniumAxway Appcelerator
 
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Don Thorp & Marshall Culpepper: Advanced Titanium Development for AndroidDon Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Don Thorp & Marshall Culpepper: Advanced Titanium Development for AndroidAxway Appcelerator
 
Apps, APIs & Analytics: What "Mobile First" Really Means
Apps, APIs & Analytics: What "Mobile First" Really MeansApps, APIs & Analytics: What "Mobile First" Really Means
Apps, APIs & Analytics: What "Mobile First" Really MeansAxway Appcelerator
 
Codestrong 2012 keynote jonathan rende, appcelerator's vp of products
Codestrong 2012 keynote   jonathan rende, appcelerator's vp of productsCodestrong 2012 keynote   jonathan rende, appcelerator's vp of products
Codestrong 2012 keynote jonathan rende, appcelerator's vp of productsAxway Appcelerator
 
Codestrong 2012 keynote how to build a top ten app
Codestrong 2012 keynote   how to build a top ten appCodestrong 2012 keynote   how to build a top ten app
Codestrong 2012 keynote how to build a top ten appAxway Appcelerator
 
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSJeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSAxway Appcelerator
 
Ben Bahrenburg: Augmented Reality Using Titanium
Ben Bahrenburg: Augmented Reality Using TitaniumBen Bahrenburg: Augmented Reality Using Titanium
Ben Bahrenburg: Augmented Reality Using TitaniumAxway Appcelerator
 
What's New in Titanium Mobile 1.8
What's New in Titanium Mobile 1.8What's New in Titanium Mobile 1.8
What's New in Titanium Mobile 1.8Axway Appcelerator
 
Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Axway Appcelerator
 
Stop Debating, Start Measuring
Stop Debating, Start MeasuringStop Debating, Start Measuring
Stop Debating, Start MeasuringAxway Appcelerator
 

Destaque (19)

Codestrong 2012 breakout session introduction to mobile web and best practices
Codestrong 2012 breakout session   introduction to mobile web and best practicesCodestrong 2012 breakout session   introduction to mobile web and best practices
Codestrong 2012 breakout session introduction to mobile web and best practices
 
Ketan Majmudar: From Kitchen Sink to App: Real World Case Studies
Ketan Majmudar: From Kitchen Sink to App: Real World Case StudiesKetan Majmudar: From Kitchen Sink to App: Real World Case Studies
Ketan Majmudar: From Kitchen Sink to App: Real World Case Studies
 
Ingo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep DiveIngo Muschenetz: Titanium Studio Deep Dive
Ingo Muschenetz: Titanium Studio Deep Dive
 
Kevin Whinnery: Write Better JavaScript
Kevin Whinnery: Write Better JavaScriptKevin Whinnery: Write Better JavaScript
Kevin Whinnery: Write Better JavaScript
 
Codestrong 2012 keynote jeff haynie, appcelerator's ceo
Codestrong 2012 keynote   jeff haynie, appcelerator's ceoCodestrong 2012 keynote   jeff haynie, appcelerator's ceo
Codestrong 2012 keynote jeff haynie, appcelerator's ceo
 
Codestrong 2012 keynote nolan wright, appcelerator's cto
Codestrong 2012 keynote   nolan wright, appcelerator's ctoCodestrong 2012 keynote   nolan wright, appcelerator's cto
Codestrong 2012 keynote nolan wright, appcelerator's cto
 
Codestrong 2012 breakout session designing the ultimate user experience
Codestrong 2012 breakout session   designing the ultimate user experienceCodestrong 2012 breakout session   designing the ultimate user experience
Codestrong 2012 breakout session designing the ultimate user experience
 
Jeff English: Demystifying Module Development - How to Extend Titanium
Jeff English: Demystifying Module Development - How to Extend TitaniumJeff English: Demystifying Module Development - How to Extend Titanium
Jeff English: Demystifying Module Development - How to Extend Titanium
 
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Don Thorp & Marshall Culpepper: Advanced Titanium Development for AndroidDon Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
 
Testing Best Practices
Testing Best PracticesTesting Best Practices
Testing Best Practices
 
Apps, APIs & Analytics: What "Mobile First" Really Means
Apps, APIs & Analytics: What "Mobile First" Really MeansApps, APIs & Analytics: What "Mobile First" Really Means
Apps, APIs & Analytics: What "Mobile First" Really Means
 
Making the Mobile Mind Shift
Making the Mobile Mind ShiftMaking the Mobile Mind Shift
Making the Mobile Mind Shift
 
Codestrong 2012 keynote jonathan rende, appcelerator's vp of products
Codestrong 2012 keynote   jonathan rende, appcelerator's vp of productsCodestrong 2012 keynote   jonathan rende, appcelerator's vp of products
Codestrong 2012 keynote jonathan rende, appcelerator's vp of products
 
Codestrong 2012 keynote how to build a top ten app
Codestrong 2012 keynote   how to build a top ten appCodestrong 2012 keynote   how to build a top ten app
Codestrong 2012 keynote how to build a top ten app
 
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSJeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
 
Ben Bahrenburg: Augmented Reality Using Titanium
Ben Bahrenburg: Augmented Reality Using TitaniumBen Bahrenburg: Augmented Reality Using Titanium
Ben Bahrenburg: Augmented Reality Using Titanium
 
What's New in Titanium Mobile 1.8
What's New in Titanium Mobile 1.8What's New in Titanium Mobile 1.8
What's New in Titanium Mobile 1.8
 
Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?
 
Stop Debating, Start Measuring
Stop Debating, Start MeasuringStop Debating, Start Measuring
Stop Debating, Start Measuring
 

Semelhante a Codestrong 2012 breakout session how to develop your own modules

CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile worldGodfrey Nolan
 
Modular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireJeff Fox
 
Real World Windows Phone Development
Real World Windows Phone DevelopmentReal World Windows Phone Development
Real World Windows Phone DevelopmentIgor Kulman
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftJordan Yaker
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI InteropRay Ploski
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?BillCavaUs
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 
Building Papers
Building PapersBuilding Papers
Building PapersMahmoud
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...E. Camden Fisher
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy wayJohn Azariah
 
SE2016 Java Alex Theedom "Java EE revisits design patterns"
SE2016 Java Alex Theedom "Java EE revisits design patterns"SE2016 Java Alex Theedom "Java EE revisits design patterns"
SE2016 Java Alex Theedom "Java EE revisits design patterns"Inhacking
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Perficient, Inc.
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms BootcampMike Melusky
 
Infinum android talks_10_android_libraries_used_on_daily_basis
Infinum android talks_10_android_libraries_used_on_daily_basisInfinum android talks_10_android_libraries_used_on_daily_basis
Infinum android talks_10_android_libraries_used_on_daily_basisInfinum
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 

Semelhante a Codestrong 2012 breakout session how to develop your own modules (20)

CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile world
 
Modular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter BonfireModular PHP Development using CodeIgniter Bonfire
Modular PHP Development using CodeIgniter Bonfire
 
77402_VishalLaljeet
77402_VishalLaljeet77402_VishalLaljeet
77402_VishalLaljeet
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 
Real World Windows Phone Development
Real World Windows Phone DevelopmentReal World Windows Phone Development
Real World Windows Phone Development
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
 
Spring - CDI Interop
Spring - CDI InteropSpring - CDI Interop
Spring - CDI Interop
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
 
Building Papers
Building PapersBuilding Papers
Building Papers
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Reactive summit 2020 microsoft orleans the easy way
Reactive summit 2020   microsoft orleans the easy wayReactive summit 2020   microsoft orleans the easy way
Reactive summit 2020 microsoft orleans the easy way
 
SE2016 Java Alex Theedom "Java EE revisits design patterns"
SE2016 Java Alex Theedom "Java EE revisits design patterns"SE2016 Java Alex Theedom "Java EE revisits design patterns"
SE2016 Java Alex Theedom "Java EE revisits design patterns"
 
Alex Theedom Java ee revisits design patterns
Alex Theedom	Java ee revisits design patternsAlex Theedom	Java ee revisits design patterns
Alex Theedom Java ee revisits design patterns
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Infinum android talks_10_android_libraries_used_on_daily_basis
Infinum android talks_10_android_libraries_used_on_daily_basisInfinum android talks_10_android_libraries_used_on_daily_basis
Infinum android talks_10_android_libraries_used_on_daily_basis
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 

Mais de Axway Appcelerator

Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & RoadmapAxway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & RoadmapAxway Appcelerator
 
2014 Dublin Web Summit by Jeff Haynie
2014 Dublin Web Summit by Jeff Haynie2014 Dublin Web Summit by Jeff Haynie
2014 Dublin Web Summit by Jeff HaynieAxway Appcelerator
 
Mobile & The New Experience Economy (And What it Means for IT)
Mobile & The New Experience Economy  (And What it Means for IT)Mobile & The New Experience Economy  (And What it Means for IT)
Mobile & The New Experience Economy (And What it Means for IT)Axway Appcelerator
 
Appcelerator Presentation Template
Appcelerator Presentation TemplateAppcelerator Presentation Template
Appcelerator Presentation TemplateAxway Appcelerator
 
Codestrong 2012 breakout session at&t api platform and trends
Codestrong 2012 breakout session  at&t api platform and trendsCodestrong 2012 breakout session  at&t api platform and trends
Codestrong 2012 breakout session at&t api platform and trendsAxway Appcelerator
 
Codestrong 2012 breakout session what's new in titanium studio
Codestrong 2012 breakout session   what's new in titanium studioCodestrong 2012 breakout session   what's new in titanium studio
Codestrong 2012 breakout session what's new in titanium studioAxway Appcelerator
 
Codestrong 2012 breakout session using appcelerator cloud services in your ...
Codestrong 2012 breakout session   using appcelerator cloud services in your ...Codestrong 2012 breakout session   using appcelerator cloud services in your ...
Codestrong 2012 breakout session using appcelerator cloud services in your ...Axway Appcelerator
 
Codestrong 2012 breakout session the role of cloud services in your next ge...
Codestrong 2012 breakout session   the role of cloud services in your next ge...Codestrong 2012 breakout session   the role of cloud services in your next ge...
Codestrong 2012 breakout session the role of cloud services in your next ge...Axway Appcelerator
 
Codestrong 2012 breakout session new device platform support for titanium
Codestrong 2012 breakout session   new device platform support for titaniumCodestrong 2012 breakout session   new device platform support for titanium
Codestrong 2012 breakout session new device platform support for titaniumAxway Appcelerator
 
Codestrong 2012 breakout session mobile platform and infrastructure
Codestrong 2012 breakout session   mobile platform and infrastructureCodestrong 2012 breakout session   mobile platform and infrastructure
Codestrong 2012 breakout session mobile platform and infrastructureAxway Appcelerator
 
Codestrong 2012 breakout session making money on appcelerator's marketplace
Codestrong 2012 breakout session   making money on appcelerator's marketplaceCodestrong 2012 breakout session   making money on appcelerator's marketplace
Codestrong 2012 breakout session making money on appcelerator's marketplaceAxway Appcelerator
 
Codestrong 2012 breakout session live multi-platform testing
Codestrong 2012 breakout session   live multi-platform testingCodestrong 2012 breakout session   live multi-platform testing
Codestrong 2012 breakout session live multi-platform testingAxway Appcelerator
 
Codestrong 2012 breakout session leveraging titanium as part of your mobile...
Codestrong 2012 breakout session   leveraging titanium as part of your mobile...Codestrong 2012 breakout session   leveraging titanium as part of your mobile...
Codestrong 2012 breakout session leveraging titanium as part of your mobile...Axway Appcelerator
 
Codestrong 2012 breakout session i os internals and best practices
Codestrong 2012 breakout session   i os internals and best practicesCodestrong 2012 breakout session   i os internals and best practices
Codestrong 2012 breakout session i os internals and best practicesAxway Appcelerator
 
Codestrong 2012 breakout session how to win bigger mobile deals
Codestrong 2012 breakout session   how to win bigger mobile dealsCodestrong 2012 breakout session   how to win bigger mobile deals
Codestrong 2012 breakout session how to win bigger mobile dealsAxway Appcelerator
 
Codestrong 2012 breakout session hacking titanium
Codestrong 2012 breakout session   hacking titaniumCodestrong 2012 breakout session   hacking titanium
Codestrong 2012 breakout session hacking titaniumAxway Appcelerator
 
Codestrong 2012 breakout session exploring the new titanium command line in...
Codestrong 2012 breakout session   exploring the new titanium command line in...Codestrong 2012 breakout session   exploring the new titanium command line in...
Codestrong 2012 breakout session exploring the new titanium command line in...Axway Appcelerator
 
Codestrong 2012 breakout session developing i phone and android apps using ...
Codestrong 2012 breakout session   developing i phone and android apps using ...Codestrong 2012 breakout session   developing i phone and android apps using ...
Codestrong 2012 breakout session developing i phone and android apps using ...Axway Appcelerator
 
Codestrong 2012 breakout session creating a mobile strategy
Codestrong 2012 breakout session   creating a mobile strategyCodestrong 2012 breakout session   creating a mobile strategy
Codestrong 2012 breakout session creating a mobile strategyAxway Appcelerator
 
Codestrong 2012 breakout session create real interactive prototypes in minutes
Codestrong 2012 breakout session   create real interactive prototypes in minutesCodestrong 2012 breakout session   create real interactive prototypes in minutes
Codestrong 2012 breakout session create real interactive prototypes in minutesAxway Appcelerator
 

Mais de Axway Appcelerator (20)

Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & RoadmapAxway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
 
2014 Dublin Web Summit by Jeff Haynie
2014 Dublin Web Summit by Jeff Haynie2014 Dublin Web Summit by Jeff Haynie
2014 Dublin Web Summit by Jeff Haynie
 
Mobile & The New Experience Economy (And What it Means for IT)
Mobile & The New Experience Economy  (And What it Means for IT)Mobile & The New Experience Economy  (And What it Means for IT)
Mobile & The New Experience Economy (And What it Means for IT)
 
Appcelerator Presentation Template
Appcelerator Presentation TemplateAppcelerator Presentation Template
Appcelerator Presentation Template
 
Codestrong 2012 breakout session at&t api platform and trends
Codestrong 2012 breakout session  at&t api platform and trendsCodestrong 2012 breakout session  at&t api platform and trends
Codestrong 2012 breakout session at&t api platform and trends
 
Codestrong 2012 breakout session what's new in titanium studio
Codestrong 2012 breakout session   what's new in titanium studioCodestrong 2012 breakout session   what's new in titanium studio
Codestrong 2012 breakout session what's new in titanium studio
 
Codestrong 2012 breakout session using appcelerator cloud services in your ...
Codestrong 2012 breakout session   using appcelerator cloud services in your ...Codestrong 2012 breakout session   using appcelerator cloud services in your ...
Codestrong 2012 breakout session using appcelerator cloud services in your ...
 
Codestrong 2012 breakout session the role of cloud services in your next ge...
Codestrong 2012 breakout session   the role of cloud services in your next ge...Codestrong 2012 breakout session   the role of cloud services in your next ge...
Codestrong 2012 breakout session the role of cloud services in your next ge...
 
Codestrong 2012 breakout session new device platform support for titanium
Codestrong 2012 breakout session   new device platform support for titaniumCodestrong 2012 breakout session   new device platform support for titanium
Codestrong 2012 breakout session new device platform support for titanium
 
Codestrong 2012 breakout session mobile platform and infrastructure
Codestrong 2012 breakout session   mobile platform and infrastructureCodestrong 2012 breakout session   mobile platform and infrastructure
Codestrong 2012 breakout session mobile platform and infrastructure
 
Codestrong 2012 breakout session making money on appcelerator's marketplace
Codestrong 2012 breakout session   making money on appcelerator's marketplaceCodestrong 2012 breakout session   making money on appcelerator's marketplace
Codestrong 2012 breakout session making money on appcelerator's marketplace
 
Codestrong 2012 breakout session live multi-platform testing
Codestrong 2012 breakout session   live multi-platform testingCodestrong 2012 breakout session   live multi-platform testing
Codestrong 2012 breakout session live multi-platform testing
 
Codestrong 2012 breakout session leveraging titanium as part of your mobile...
Codestrong 2012 breakout session   leveraging titanium as part of your mobile...Codestrong 2012 breakout session   leveraging titanium as part of your mobile...
Codestrong 2012 breakout session leveraging titanium as part of your mobile...
 
Codestrong 2012 breakout session i os internals and best practices
Codestrong 2012 breakout session   i os internals and best practicesCodestrong 2012 breakout session   i os internals and best practices
Codestrong 2012 breakout session i os internals and best practices
 
Codestrong 2012 breakout session how to win bigger mobile deals
Codestrong 2012 breakout session   how to win bigger mobile dealsCodestrong 2012 breakout session   how to win bigger mobile deals
Codestrong 2012 breakout session how to win bigger mobile deals
 
Codestrong 2012 breakout session hacking titanium
Codestrong 2012 breakout session   hacking titaniumCodestrong 2012 breakout session   hacking titanium
Codestrong 2012 breakout session hacking titanium
 
Codestrong 2012 breakout session exploring the new titanium command line in...
Codestrong 2012 breakout session   exploring the new titanium command line in...Codestrong 2012 breakout session   exploring the new titanium command line in...
Codestrong 2012 breakout session exploring the new titanium command line in...
 
Codestrong 2012 breakout session developing i phone and android apps using ...
Codestrong 2012 breakout session   developing i phone and android apps using ...Codestrong 2012 breakout session   developing i phone and android apps using ...
Codestrong 2012 breakout session developing i phone and android apps using ...
 
Codestrong 2012 breakout session creating a mobile strategy
Codestrong 2012 breakout session   creating a mobile strategyCodestrong 2012 breakout session   creating a mobile strategy
Codestrong 2012 breakout session creating a mobile strategy
 
Codestrong 2012 breakout session create real interactive prototypes in minutes
Codestrong 2012 breakout session   create real interactive prototypes in minutesCodestrong 2012 breakout session   create real interactive prototypes in minutes
Codestrong 2012 breakout session create real interactive prototypes in minutes
 

Codestrong 2012 breakout session how to develop your own modules

  • 1. Introduction to Module Development Aaron K. Saunders Founder/CTO Clearly Innovative Inc @aaronksaunders aaron@clearlyinnovative.com
  • 2. About Me • Founder & CTO Clearly Innovative Inc. • Full stack development for mobile and web integrations w/javascript & nodejs • Appcelerator Platform Evangelist; Titan • IOS and Android Module Development • 2yrs of Appcelerator blogging • Working on book with ACS and Alloy Integration
  • 4. Android Topics • Introduction to module development, not advanced • Basic integration of third party library and intent based library • Understand the Titanium Studio Menu commands for scripts • Understanding Ant build script on Android
  • 5. IOS Topics • Introduction to module development, not advanced • Basic integration of third party library • Understand the Titanium Studio Menu commands for scripts • Understanding command line scripts
  • 7. Out of Scope • Advanced view integration in modules • Additional information on NDK integration on Android • Addressing complex third party library conflicts on IOS
  • 8. Android first because it needs some love
  • 9. Your Environment • Instructions on the wiki are your best starting point • Use the commands provided in Titanium Studio • Be sure you have followed instructions for setting up Titanium Studio • Installing Java Development Tools
  • 11. Create Android Module • Select “New Titanium Mobile Module Project” from Menu • Fill out all of the fields presented • Save the project • Edit the build.properties to point to the ANDROID_NDK path • Run project
  • 12. Run through script on device
  • 15. Integration Steps • Import 3rd party library • Pass authentication credentials into module • Setup callbacks in module • Pass results back from module • Render results
  • 16. Edit app.js • Instantiate the module object • Create a proxy object • Provide credentials to module • Setup success and error callback • Execute API method on proxy object
  • 18. Edit module file • Remove the template method calls generated by script • Create property for the username • Create property for realm
  • 20. Edit proxy file • Get properties for username and realm; framework does most of the heavy lifting for you • Get the callback functions from the passed in parameters
  • 23. Edit proxy file • So now we have all the data in… We need to get the data out • Create hashMap, add the objects and call our callback
  • 24.
  • 27. Your Environment • Instructions on the wiki are your best starting point • Use the commands provided in Titanium Studio • Be sure you have followed instructions for setting up Titanium Studio • Installing IOS & Xcode Development Tools
  • 29. Integration Steps • Import 3rd party library • Pass application key into module • Setup callbacks in module • Pass results back from module • Render results
  • 31. Edit app.js • Instantiate the module object • Provide application key to module • Setup success and error callback • Execute API method on module
  • 33. Edit header file • Set the interface for the card.io delegate • Set up private variable for the function callback with success or error information
  • 35. Edit module file • Remove the template method calls generated by script • Make sure we de-allocate any memory that we have allocated • Get the parameters from the javascript passed into objective-c • Make card.io API call to display card capture information
  • 37. Edit module file • Handle the response from the UI after it is rendered • Handle the two delegates from API for user cancel or data entered • Pass a new hashmap containing results back to the javascript app
  • 40. OVERLOAD!! • Blog posting next two weeks • All code provided on github • Additional Intent based module included
  • 41.
  • 42. Aaron K. Saunders @aaronksaunders aaron@clearlyinnovative.com blog.clearlyinnovative.com