This document discusses building an iPhone app using Rails and PhoneGap without using Objective-C. It recommends using PhoneGap to run a local web server and display content in a full screen Safari view. It provides tips for integrating Rails controllers to accept and return JSON via AJAX calls and handle errors gracefully. CORS is used to allow cross-origin resource sharing. Issues with the jQuery-based jQTouch framework are noted. Alternatives like Sencha Touch, jQuery Mobile, or skipping the app store are suggested today.
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Prescription drugged driving charges in arizonaThe Law Buzz
If you are taking prescription medications under your doctor’s orders, you could still find yourself facing DUI charges. Learn more about Arizona’s drugged driving laws and the possible penalties that may result if you are convicted of the offense.
Jab14 exemple of integration of Joomla and slim Framework
http://jandbeyond.org/program/sessions/dont-worry-be-api-best-practices-and-implementatio.html
In the context of a website or web application, an application-programming interface or API allows software developers to interact with and build upon the data and/or services delivered by your website. Thus, APIs provide limitless flexibility, reach and innovative potential for any website, service or application.
During the last few months, Pierre-André has performed extensive research and development to discover effective ways of adding an API to a Joomla website. In this interactive session, he will share his findings.
Attendees can expect to learn, why you need an API for your web site, the pros and cons of various API solutions, and why a RESTful API is a good fit for Joomla. Best practices for implementing a well-documented, pragmatic, and RESTful API will be discussed, along with useful tools and sample code for using the com_api component as well as Slim Framework.
Prescription drugged driving charges in arizonaThe Law Buzz
If you are taking prescription medications under your doctor’s orders, you could still find yourself facing DUI charges. Learn more about Arizona’s drugged driving laws and the possible penalties that may result if you are convicted of the offense.
Things fail. It’s a fact of life. But that doesn’t mean that your applications and services need to fail. In this talk, David Prinzing described a solution architecture that has been proven to deliver amazing performance at scale with continuous availability on Amazon Web Services. You can’t just move your application to the cloud and expect this – you need to design for it. Technology selections include Amazon Web Services, Ubuntu Linux, Apache Cassandra for the database, Dropwizard for providing RESTful web services, and AngularJS as the foundation for an HTML5 web application. Event: http://www.meetup.com/AWS-EASTBAY/events/225570266
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
Using modern browsers, developers can now create web apps with capabilities that were only possible in native or hybrid apps. Web apps can now access hardware devices such as microphones, cameras, GPS, accelerometers, VR displays, and many others, without using any plugins. Using Web Bluetooth, web app developers can now communicate with nearly any type of hardware device. In this session, we’ll survey a sample of the W3C standards that give developers access to next-gen capabilities via web apps. Topics will include Service Worker, Push API, WebRTC, Web Bluetooth, Web Crypto, Web Speech, Web Notifications, and others.
Modern Web Applications Utilizing HTML5 APIsIdo Green
Modern web apps are rich, interactive applications. This webcast will cover new techniques for building modern web apps and how to utilize the latest HTML5 APIs to create a new class of web apps that will delight and amaze your users. In this interactive event, Ido Green, the author of Web Workers, will cover the following:
* Defining the modern web app
* Designing a modern web app
* HTML5 Power tools/APIs
* Tips & best practices
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Patrick Meenan
The amount of 3rd-party content included on websites is exploding (social sharing buttons, user tracking, advertising, code libraries, etc). Learn tips and techniques for how best to integrate them into your sites without risking a slower user experience or even your sites becoming unavailable.
Video is available here: http://www.youtube.com/watch?v=JB4ulhFFdH4&feature=plcp
Npm, bower, Angular, jQuery, grunt, gulp, browserify, requirejs, ember, backbone, requirejs, amd .... thousands of micro frameworks, libraries and tools.
The question is how do you avoid getting lost within the jungle of modern JS frameworks, libraries and tools? How to be effective and actually deliver while every day there is a new cool framework or tool coming out and one of the developers in your team would love to try it. In production.
In this talk I will explain the right strategy for dealing with the rapid changes in JS landscape and choosing the right set of tools for doing the job.
Key takeaways:
Get to know which js tools/libraries works well together.
Which tools/libraries are not cool anymore and why?
How to deal with library/tool dependency conflicts?
How to find good quality tools and frameworks?
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Servicestevemock
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service.
A tutorial for building a science application using the Araport.org platform, specifically the Agave API's Profiles RESTful endpoints from the araport app generator platform.
How to build Simple yet powerful API.pptxChanna Ly
How to build simple yet powerful API from novice to professional. API for beginners, API for gurus, Enterprise level API, REST API, JWT API, Deep dive.
Things fail. It’s a fact of life. But that doesn’t mean that your applications and services need to fail. In this talk, David Prinzing described a solution architecture that has been proven to deliver amazing performance at scale with continuous availability on Amazon Web Services. You can’t just move your application to the cloud and expect this – you need to design for it. Technology selections include Amazon Web Services, Ubuntu Linux, Apache Cassandra for the database, Dropwizard for providing RESTful web services, and AngularJS as the foundation for an HTML5 web application. Event: http://www.meetup.com/AWS-EASTBAY/events/225570266
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
Using modern browsers, developers can now create web apps with capabilities that were only possible in native or hybrid apps. Web apps can now access hardware devices such as microphones, cameras, GPS, accelerometers, VR displays, and many others, without using any plugins. Using Web Bluetooth, web app developers can now communicate with nearly any type of hardware device. In this session, we’ll survey a sample of the W3C standards that give developers access to next-gen capabilities via web apps. Topics will include Service Worker, Push API, WebRTC, Web Bluetooth, Web Crypto, Web Speech, Web Notifications, and others.
Modern Web Applications Utilizing HTML5 APIsIdo Green
Modern web apps are rich, interactive applications. This webcast will cover new techniques for building modern web apps and how to utilize the latest HTML5 APIs to create a new class of web apps that will delight and amaze your users. In this interactive event, Ido Green, the author of Web Workers, will cover the following:
* Defining the modern web app
* Designing a modern web app
* HTML5 Power tools/APIs
* Tips & best practices
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Patrick Meenan
The amount of 3rd-party content included on websites is exploding (social sharing buttons, user tracking, advertising, code libraries, etc). Learn tips and techniques for how best to integrate them into your sites without risking a slower user experience or even your sites becoming unavailable.
Video is available here: http://www.youtube.com/watch?v=JB4ulhFFdH4&feature=plcp
Npm, bower, Angular, jQuery, grunt, gulp, browserify, requirejs, ember, backbone, requirejs, amd .... thousands of micro frameworks, libraries and tools.
The question is how do you avoid getting lost within the jungle of modern JS frameworks, libraries and tools? How to be effective and actually deliver while every day there is a new cool framework or tool coming out and one of the developers in your team would love to try it. In production.
In this talk I will explain the right strategy for dealing with the rapid changes in JS landscape and choosing the right set of tools for doing the job.
Key takeaways:
Get to know which js tools/libraries works well together.
Which tools/libraries are not cool anymore and why?
How to deal with library/tool dependency conflicts?
How to find good quality tools and frameworks?
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Servicestevemock
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service.
A tutorial for building a science application using the Araport.org platform, specifically the Agave API's Profiles RESTful endpoints from the araport app generator platform.
How to build Simple yet powerful API.pptxChanna Ly
How to build simple yet powerful API from novice to professional. API for beginners, API for gurus, Enterprise level API, REST API, JWT API, Deep dive.
Scraping the web with Laravel, Dusk, Docker, and PHPPaul Redmond
Jumpstart your web scraping automation in the cloud with Laravel Dusk, Docker, and friends. We will discuss the types of web scraping tools, the best tools for the job, and how to deal with running selenium in Docker.
Code examples @ https://github.com/paulredmond/scraping-with-laravel-dusk
Monitoring a Kubernetes-backed microservice architecture with PrometheusFabian Reinartz
As many startups of the last decade, SoundCloud’s architecture started as a Ruby-on-Rails monolith, which later had to be broken into microservices to cope with the growing size and complexity of the site. The microservices initially ran on an in-house container management and deployment platform. Recently, the company has started to migrate to Kubernetes.
With the introduction of microservices, the existing conventional monitoring setup failed both conceptually and in terms of scalability. Thus, starting in 2012, SoundCloud invested heavily into the development of the open-source monitoring system Prometheus, which was designed for large-scale highly dynamic service-oriented architectures.
Migrating to Kubernetes, it became apparent that Prometheus and Kubernetes are a match made in open-source heaven. The talk will demonstrate the current Prometheus setup at SoundCloud, monitoring a large-scale Kubernetes cluster.
Security Best Practices for Bot BuildersMax Feldman
Explore common web application vulnerabilities bot builders should know. You’ll learn how to locate and prevent these vulnerabilities, and you’ll come away with best practices for building bots your customers can trust. For Slack getting started guides: https://www.api.slack.com
Don Thorp & Marshall Culpepper: Advanced Titanium Development for AndroidAxway Appcelerator
In this presentation, we will provide an overview of native Android tooling and some of its uses. We will also cover several Android specific concepts and APIs and discuss how you can use them when creating a best of breed application.
Tooling
- DDMS
- adb (Android Debug Bridge)
- android (Downloading SDKs, Managing AVDs)
APIs
- Android Lifecycle Events
- Intents, Activities, Notifications
- Javascript Activities
- Resources
- Android Section of tiapp.xml
1. Building an iPhone app
with Rails and no Objective-C
Texas Association of Local Health Officials
Richard Boldway - rboldway@talho.org
Andrew Duhan - andrewduhan@gmail.com
2.
3.
4. Intro to Problem
● Build an iPhone interface to TxPhin application
● Restrict access by login
● Show list of latest alerts
● Search directory information
● Mandatory: iTunes AppStore delivery
Client - github.com/talho/iPHIN/
5. Objective-C ?
● Barriers to entry:
– Language learning curve
– Environment learning curve
– Memory Management: #1 killer of iPhone apps
● Why write a client-app for an already web-
enabled system?
7. PhoneGap
● Runs a local web server
● Displays through full screen Safari
– Removes non-app elements
● Supports local, session, sqlite storage
● Access to iPhone resources via Javascript
– Accelerometer
– Contact manager and place calls
– GPS
– No camera & microphone
8. AppStore Submission Tips
● Graceful Network Error Handling
● No High Data Volume/Request
● No Desktop/Widget environment
● No major UI/UX from the server
appreview.tumblr.com
9. RAILS Integration
● Preferred to make controllers accept JSON via
AJAX
– Search controller
– Alerts controller
● Only fetching pieces of page data at a time
10. JSONP
● JSONP works, but...
● Concern about security
● Concern about apple rejection (eval)
● Rack hack for POST to support CRUD
16. client side:
$.ajax({ type: "POST",
data: $('#signin_form').serialize(),
dataType: "json",
url: DOMAIN + "/session.json",
timeout: 10000, cache: false,
success: function(data) {
setCookie(data);
setTimeout(function() {
jQT.goTo($('#alerts_pane'), 'flip');
$('#signin_pane').data('clicked', false);
}, 500);
},
error: function(xhr) {
$('#signin_pane').data('clicked', false);
if (xhr.readyState == 4){
switch (xhr.status) {
Case 401: msg(...); break; // bad user or pass
case 0: msg(...); break; // bad user or pass
default: msg(...); // Network error
}
} else {
msg ('Error contacting server.');
}
}
});
17. Error handling
● Many errors are un-meaningful
● JQTouch uses older jQuery;
always returns XHR success :-/
● Server dead? Or lost Network?
– Reachability API in PhoneGap
18. iPhone UI Concerns
● jQTouch is dead.
● iPhone tap delay
– Double click
– History issues
● Jquery behavior
– window['localStorage']._cookie
– $('body').data(obj)
● Large <select> lists are painful
19. What would we do today?
● Rails – Generally very happy
– Alias .iphone to text/json, avoiding base JSON
handler confusion
● Alternatives to jQTouch
– SenchaTouch (ext.js): very iPhoney but
Android-compatible
– jQuery Mobile: Very new, lots of devices, more
generic
– Jo App: Ditto.
● Skip the app store?