This document discusses evolving mobile architectures and approaches to building mobile applications. It covers building apps for multiple platforms, hybrid native-web architectures, mobile backend systems, and testing hybrid apps. Key points include separating presentation from logic, choosing technologies based on features, and testing at multiple levels including UI, integration, and units. An approach of evolving designs over time based on measuring outcomes is recommended over locking into only native or only web approaches.
Hybrid app development allows building a single app that can run on multiple platforms using web technologies like HTML, CSS, and JavaScript. It has advantages like lower costs, faster development time, and easier maintenance compared to building native apps for each platform. Popular frameworks for hybrid apps include PhoneGap, Ionic, and React Native. While hybrid apps have performance limitations compared to native, they are suitable when targeting multiple platforms or when most device functionality can be accessed through frameworks.
The document summarizes a seminar presentation on PhoneGap. PhoneGap is a mobile development framework that allows developers to build mobile apps using common web technologies like HTML, CSS, and JavaScript. This allows apps to be compiled for multiple platforms like iOS, Android, and Windows Phone from a single codebase. The presentation discusses what PhoneGap is, how it works, its advantages like cross-platform development, and disadvantages like limitations of web-based apps. It includes demo code and concludes PhoneGap is useful for small apps but native development is better for graphics-intensive apps.
Ian Jennings presents at the Austin UXPA meetup on November 12, 2019 at Visa. Developer Experience (DX) is the equivalent to User Experience (UX) when the user of the software or system is a developer. Sure, the science is the same, but this talk will teach you why developer experience is gaining traction as a new field. Between APIs, SDKs, code, documentation, demos, CLIs, tutorials, and developer portals, DX is a whole new beast. Learn about the emergence of Developer Experience, the similarities and differences between UX an DX, and the tools you need to apply your UX experience toward the field of DX. Speaker Bio: Ian Jennings is the founder of Haxor, a developer experience testing platform based in Austin TX. Haxor tests and measures APIs, SDKs, and developer products with on-demand feedback from real developers. Previously Ian co-founded developer meetup platform Hacker League (acquired by Mashery and Intel) before spending 6 years at PubNub establishing their developer experience strategy. He also operates DevPort, a developer portfolio site populated by thousands of developers.
Appium is a popular open source mobile application UI automation framework. These are the slide from Selenium Camp 2016 in Kiev.
The document summarizes Todd Ross Nienkerk's presentation on decoupled content management system (CMS) architecture. Some key points: - A decoupled CMS separates the content storage and delivery mechanisms, allowing content to be delivered to various channels through APIs instead of being tied to specific frontends. - Decoupling a CMS makes sense when organizations want to adopt cutting-edge frontend technologies, separate upgrades from redesigns, eliminate tension between design and CMS constraints, or publish content to multiple channels. - Case studies of organizations like TWiT that have moved to a decoupled CMS architecture are discussed, highlighting benefits like faster website updates, easier app development, and encouraging community contributions.
Model-driven development allows users to build apps through a drag-and-drop interface of pre-built components, reducing coding by up to 80%. This approach makes app creation accessible even to non-developers by optimizing for mobile deployment and offering apps on the cloud, on-premise, or in a hybrid environment through a four-step process of naming the app, creating objects, customizing interfaces, and defining relationships between objects. A two-minute video tour demonstrates how to use Progress Rollbase to immediately start developing powerful enterprise applications.
This document provides an overview of the Android app development process from idea generation to publishing on the Google Play Store. It discusses developing a minimum viable product (MVP) with the highest return for investment and risk, field testing the app, and methods for driving installs and user retention after publishing. The example app described aims to help people quantify the quality of their daily commutes.
The document discusses the Ionic framework for building hybrid mobile apps using web technologies like Angular. It highlights how Ionic allows web developers to build native-feeling apps, provides an SDK for developing these apps, and empowers developers. Ionic 2 aims to push the limits of what is possible with web technology by keeping apps simple, providing a better native experience, and reducing tooling fatigue. Ionic also makes it easy to build progressive web apps that can be installed like native apps and work offline.
PhoneGap is an open source tool that allows developers to build mobile apps using HTML, CSS, and JavaScript instead of native languages like Objective-C or Java. It wraps the web view container to give apps access to device features like geolocation and accelerometers. While documentation is still maturing and bugs may exist, PhoneGap is free, open source, and offers developers a way to create cross-platform mobile apps without having to learn multiple programming languages. Sample PhoneGap apps and getting started resources are provided.
Until recently, debugging a mobile web site was incredibly difficult. Luckily things things have changed. Now some desktop browsers not only contain remote debuggers, but have other features to monitor and improve performance and detect memory leaks.
An overview of developing mobile applications with HTML, CSS and JavaScript using PhoneGap, node.js, Brackets and related tools.
This talk was presented at VodQA Gurgaon 3rd edition (11 July 2013) Talk Abstract: In midst of testing functional aspect of your mobile apps, performance testing is often ignored or takes a back seat. With the strict quality checks on app stores and other platforms, it becomes all the more essentials for your app to meet performance criteria. We would be focusing on understanding these criteria in detail, their impact and ways to tackle them. Speakers: Rupesh Dubey: Rupesh has 5+ years of experience in Test Automation and Manual testing and have been with ThoughtWorks for more than 3 years. He has worked in various domains including HealthCare and Business Consulting. Priyank Dhillon: He has around 8 years of experience as QA. He has worked on domains such as Telecom, Video and E-commerce and has been involved in different aspects of testing such as Security, White box, Performance. He has worked in software automation testing using wide range of automation tools, doing manual testing and in requirement analysis.
The document discusses how the Ionic framework allows developers to easily convert Angular web apps into mobile apps. It outlines a 7 step process to take an existing Angular contacts app and deploy it as a mobile app using Ionic and Cordova. Key steps include choosing an Ionic UI, copying over code, switching to UI-router, adding Ionic views, utilizing device capabilities, adding app resources, and deploying to app stores. Ionic provides Angular developers an easy way to build cross-platform mobile apps without having to learn new languages and frameworks.
This document discusses building a full-stack application called MemeMail using Golang and Google Cloud Platform within one week. It describes choosing Google Cloud over other cloud providers for its ease of use. It then discusses the frontend implementation using Vue.js with a simple state mutation approach. The backend is built with Golang on App Engine using Cloud services like Datastore and Cloud Build for CI/CD. It emphasizes keeping the architecture simple rather than over-engineering for an MVP within a tight deadline.
PhoneGap allows developers to build mobile apps using standard web technologies like HTML, CSS, and JavaScript. It works by packaging web apps so they can be deployed and run as native mobile applications on different platforms. The document discusses how to build an Android app using PhoneGap, including setting up the project structure, adding the PhoneGap library, implementing a basic "Hello World" app, and extending functionality through plugins. It also covers debugging PhoneGap apps and some limitations compared to native development.
These are the slides from the presentation that I gave at my faculty in Zagreb, Croatia on Mar 20th 2013. The topic was Mobile Applications.
This document summarizes key points from the Titanium User Conference held on June 27th, 2013 in Baltimore, MD. It discusses how mobile is disrupting businesses and requiring new development approaches. It also provides an overview of Titanium platform updates, including 30 million new users in the past quarter and plans for iOS7 support. Future releases of Titanium are previewed, including performance improvements and a preview of the next generation Titanium platform code-named Ti.Next.
The document discusses cross-platform mobile application architecture for enterprises. It covers the need for enterprise mobile apps due to workforce mobility trends. It compares native, web, and hybrid approaches and recommends hybrid for supporting multiple platforms. Key elements of hybrid apps include device and screen agnosticism, offline storage, security, and access to device capabilities. Frameworks like Phonegap and technologies like HTML5, CSS, and JavaScript enable hybrid development.
IBM MobileFirst begins with a mindset: Innovative enterprises see the opportunities gained by bringing all resources together to strengthen customer engagement–whenever and wherever the customer wants, and on the customer's favorite device, which is often mobile. Whether transforming your customer acquisition strategies, streamlining your business process, or boosting product and service innovations, you can accomplish more by focusing on mobile computing environments first. IBM MobileFirst offers you true end-to-end mobile solutions. Some providers specialize in service offerings; some focus on platform and application development; some offer only mobile security; while others focus just on mobile device management. We bring it all. We help your customers initiate transactions at the moment of awareness. You can encourage customer-building touchpoints and deepen relationships with your customers with realtime, one-to-one engagements. Learn what they want with powerful mobile analytics and usage data, then create more compelling interactions. We can also help you increase workforce productivity through mobile apps that enhance collaboration, improve knowledge sharing, and speed responses. Gain efficiency by extending existing business capabilities and applications to mobile workers, partners, and customers.
MOTODEV Technology Evangelist, Suzanne Alexandra covers the many factors involved in choosing to develop an Android or web app that will meet enterprise requirements. She provides tips and best practices, and reviews sample apps on each platform. Topics include: -Key business and technology advantages of each approach -Examples of apps built on each platform -Browser support of HTML5 features -The hybrid app approach Twitter hashtag: #nativevsweb Got questions about this event tweet @motodev or post them on community.developer.motorola.com
This document discusses adding native functionality to hybrid mobile apps. It begins with an introduction to hybrid apps, explaining that they are built with web technologies but run within a native container on devices. It then covers the Kendo UI Mobile framework for developing hybrid apps and emphasizes its cross-platform capabilities. The document focuses on using Cordova plugins to access native device features like notifications, action sheets, social sharing, and toasts from within a hybrid app. It concludes with an announcement that a demo of these concepts will be shown.
This document discusses the development of web applications and introduces web development frameworks. It covers the history of computer applications and languages, challenges of multi-platform mobile app development, and the evolution of web technologies enabled by HTML5. It then analyzes the current state of web development frameworks, including debugging tools, IDEs, JavaScript libraries and frameworks, UI frameworks, data/logic frameworks, and cross-platform frameworks.
HTML5 and its related technologies are enabling new ways to build beautiful sites and applications for contemporary mobile devices. Native mobile developers can now use web technologies to surmount cross-platform headaches, and desktop web developers can reach mobile users in familiar, app-like ways. This session explores the state of the art in HTML5-based mobile web frameworks, and demonstrates the practical possibilities that this powerful and standards-based approach can bring.
The document discusses the different mobile application architectures including native, hybrid, and HTML5 mobile applications. It describes the development approaches, advantages, and disadvantages of each architecture. Native applications are built using tools like Xcode and Android Studio and allow for the richest user experience but require developing for each platform separately. HTML5 applications can be developed using any text editor and browser but have limited access to device capabilities. Hybrid applications combine web technologies with native platforms using a native container to access device functionality.
The document provides top 10 tips and tricks for HTML5/mobile web development. It discusses whether to use a mobile web or hybrid approach and recommends considering features like geolocation and offline support when making that decision. It also covers setting up development and testing environments, using client-side JavaScript for navigation and performance, enabling offline support, choosing UI frameworks, handling maps, non-standard elements, packaging, authentication, and optimizing for performance.
Everybody knows Javascript is single-threaded and that it shares this same thread with other browser-related processes such as painting and compositing. There are several techniques to implement pseudo multithreading in JavaScript; however, during this talk we will focus our attention on how to use and debug the Service Worker API. Our end goal is to explore practical use cases in order to simplify the process to render complex user interfaces and transitions in a browser.
Xamarin allows developers to write mobile apps using C# and share code across platforms like iOS, Android and Windows. It uses 100% native user interfaces and APIs while allowing extensive code reuse. Developers can use Xamarin.Forms to share common UI code or write native UIs and share business logic. Xamarin apps provide a native user experience along with faster development and lower maintenance costs compared to other cross-platform options.
Slides of my hands-on lab at MAX 2011. They explain how to optimize an HTML5 site running on a WEM instance, first quickly introducing HTML5 an WEM. Then, optimizing the CSS and JS inclusions, using the new Client Library feature. And finally, setting up the Dispatcher cache to deliver the right HTTP headers.
The mobile industry is worth over $1.3 trillion annually with over 1.6 billion mobile phones sold in 2011. There is significant hardware fragmentation across the over 680,000 distinct Android devices. Developing apps across the top 4 mobile platforms (iOS, Android, Symbian, Blackberry) reaches only 20% of devices. Mobile platforms differ in their programming languages, development environments, and app stores. No single cross-platform development tool supports all mobile platforms, and mobile web apps face challenges of fragmentation, performance, and monetization.
The document discusses 9 keys to successful enterprise mobility projects which include connecting mobile applications to backend systems, supporting multiple platforms and native features, having a sound development strategy and tools, implementing appropriate security measures, and deploying and monitoring applications effectively. It also provides examples of different mobile architecture approaches and development processes.
Calatrava is a framework for building cross-platform mobile apps using a hybrid approach. It allows sharing of application logic, models, and repositories across platforms while using native code where necessary. The framework consists of a kernel, bridge, and shell. The kernel contains shared logic, the bridge facilitates communication between shared and native code, and the shell contains UI elements, layouts, and pages. Calatrava apps can be developed faster and tested more easily than purely native or cross-platform approaches while still providing a good user experience. However, it may have limitations for complex apps requiring deep native integration.
The agenda includes presentations on Microsoft client technologies: - The Microsoft Client Continuum by Ronan Geraghty from 10:00-11:15. - Introducing WPF by Max Knor from 11:30-13:00. - Building WPF composite smart clients by Max Knor from 14:00-15:30. - Building RIAs with Silverlight 2 by Martha Rotter from 15:45-17:00.
This document discusses cloud computing and Microsoft Azure. It provides an overview of what a cloud is and statistics on the growth of cloud adoption over time. It then discusses Microsoft Azure's global presence and growth metrics. Examples are given of companies using Azure, including their objectives, tactics and results. Key features of Azure Websites are outlined. Traffic Manager and its use for load balancing and disaster recovery are explained. Finally, some tasks for a hackathon on Azure are proposed.
Join Matt Netkow for an updated look into all the ways modern hybrid app development has evolved in its 10+ year journey. Watch live presentation here: https://ionicframework.com/resources/webinars/hybrid-app-development-redefined
IBM MobileFirst begins with a mindset: Innovative enterprises see the opportunities gained by bringing all resources together to strengthen customer engagement–whenever and wherever the customer wants, and on the customer's favorite device, which is often mobile. Whether transforming your customer acquisition strategies, streamlining your business process, or boosting product and service innovations, you can accomplish more by focusing on mobile computing environments first. IBM MobileFirst offers you true end-to-end mobile solutions. Some providers specialize in service offerings; some focus on platform and application development; some offer only mobile security; while others focus just on mobile device management. We bring it all. We help your customers initiate transactions at the moment of awareness. You can encourage customer-building touchpoints and deepen relationships with your customers with realtime, one-to-one engagements. Learn what they want with powerful mobile analytics and usage data, then create more compelling interactions. We can also help you increase workforce productivity through mobile apps that enhance collaboration, improve knowledge sharing, and speed responses. Gain efficiency by extending existing business capabilities and applications to mobile workers, partners, and customers.
The document discusses different approaches to mobile cross-platform development including web apps, hybrid apps, and native apps. It then focuses on the Xamarin platform, which allows developers to build fully native mobile apps for Android and iOS using C# and .NET with a single shared codebase. Xamarin apps are compiled to native code for each platform and provide access to all native platform features and APIs.
This document discusses how Google is working to make the client, connectivity, and cloud more powerful and accessible through open technologies. It focuses on three areas: 1) Making the cloud more accessible through technologies like Google App Engine and data APIs. 2) Keeping connectivity pervasive through open platforms like Android and social APIs. 3) Making the client more powerful through technologies like Google Web Toolkit, Gears, and social platforms like OpenSocial. The goal is to advance an open web that empowers both users and developers.
This is a talk that Jonny LeRoy and I gave at Thoughtworks Live in Sydney and Melbourne in May 2013. It's a high level look at how you can approach mobile development and strategies to evolve for a future of many APIs and many front end clients.
This is a talk Jonny Schneider and I gave as part of the Thoughtworks Quarterly Technology Briefing, on various aspects of mobile strategy and delivery.
Rich Durnall and I presented our experience building apps with REA Group (who run the popular realestate.com.au website). The main focus was on how agile software development fits with mobile, with an emphasis on small, lean teams that iterate and learn quickly.
A talk about unit testing for iOS apps. Part rambling introduction to test driven development, part examples of certain types of tests for iOS, and a brief mention of writing your tests using Kiwi.
The document provides an overview of iPhone app development using examples of common iPhone app features. It discusses basic table views including creating a table view, populating it with data from a data source, and designing table view cells. It also covers more advanced table view techniques like custom table views and dynamic content. The document is intended to teach iPhone app developers best practices for implementing common user interface elements and features in their apps.
Slides from a talk about reducing the complexity in UIViewController classes for iOS using a pattern of smaller view coordinators
This document discusses different approaches to testing iOS apps, including using Frank, UISpec, Cucumber, and other tools. It provides an overview of how Frank works using accessibility labels to interact with UI elements and compares its syntax to UISpec and Cucumber. Example test code is shown for each tool. The road ahead for iOS testing and a demo of Frank is also mentioned.
The Murchison Widefield Array (MWA) radio telescope produces large amounts of correlated data at high speeds that must be ingested and processed in real-time. To do so efficiently, a multi-threaded software system called the Real Time System (RTS) was developed. The RTS uses a hierarchical structure of parallel threads, each handling data over different timescales, to ingest packetized data from the correlator at close to gigabit speeds without loss. Testing showed this approach allowed parallel hardware and software operation without data loss.
A few design patterns that seem to crop up in small scientific programming tasks, for a non-programmer audience.
CPU architecture is good for serial programs but memory access is slow. GPU architecture is designed for parallel processing, with many processors performing the same operations on a large data set simultaneously. GPUs have a memory hierarchy and thread hierarchy, with blocks of threads running on stream processors and accessing shared memory. CUDA is a C extension that allows programming GPUs for parallel processing on Nvidia cards, with algorithms containing loops over entire arrays being good candidates for conversion to CUDA.
Slides from a presentation I gave on Cocoa Design Patterns - software design patterns that are suitable and common within Apple's Cocoa and Cocoa Touch frameworks using Objective C