Andrew Kozlik gave this talk at the October 2015 Orlando iOS Meetup group. It gives a brief overview of 3D touch functionality and walks the reader through implementing shortcuts and peek/pop functionality.
The presentation code can be found on Github via https://github.com/akozlik/Back-to-the-Future
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
油
This document summarizes a presentation on developing Android applications with ArcGIS Server. It discusses what Android is, pros and cons of choosing Android over iPhone, how to get started with Android development, design considerations for mobile apps, and how to integrate ArcGIS Server data and services using REST APIs and the Google Maps API. Code examples are provided for creating map overlays with WMS tiles and collecting and posting field data to a feature service.
The document discusses an architecture for mobile applications using MVC patterns. It describes layers for models, views, controllers, storage, and routing. The model layer defines app domains and interfaces with storage. Storage handles persistence and converts data. Controllers are kept light by coordinating views through a router layer. Dependencies are injected to improve testability and reuse of models, storage and views across the app.
Want to squeeze every last bit of performance out of your apps? I will show you how to let go of using Interface Builder to create better performing, more optimized, and leaner apps. I'll walk you through why it's better, how to create and move projects off of IB, building your UI in code, and how to gain a better understanding of how your code works from the ground up.
README.MD for building the first purely digital mobile bank in Indonesia Richard Radics
油
2017 - HWSW meetup @ Budapest
Well walk you through the challenges of creating Indonesias first purely digital mobile bank from scratch. This speech will detail a couple of real life problems which we have faced in 7 months of development around the architecture, rxjava, CI, unit/ui testing and chatbots.. Learn from our successes and failures of developing a mobile-only bank for Millennials to help your product get ahead.
iOS 9 introduced several new features including split screen multitasking on iPad, search APIs, app thinning technologies like bitcode and app slicing, keyboard shortcuts, 3D Touch features, updated UI components like UIAlertController and SFSafariViewController, on demand resources, and the new Contacts framework. It also improved existing technologies like Auto Layout with new syntax and components like UIStackView.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
Pavlo Zhdanov "Java and Swift: How to Create Applications for Automotive Head...LogeekNightUkraine
油
This document provides an overview and code examples for integrating Java and Swift applications with SmartDeviceLink (SDL) to create applications for automotive head units. It begins with an introduction to SDL and then has separate sections on SDL integrations using Java and Swift. For Java, it covers setting up the SDL service and manager, listening for RPC notifications and events. For Swift, it discusses the proxy manager, lifecycle configuration including application icon and type, and implementing the proxy class including starting the SDL manager.
This document discusses unit testing Android applications using Robolectric. It introduces Robolectric as a tool that allows loading and testing Android classes in pure Java projects. It then discusses various testing techniques using Robolectric including mocking Android classes and context, using spies, and reducing the use of shadows by leveraging value qualifiers. The document emphasizes removing shadows as much as possible to get closer to real code.
This document provides an overview of key concepts for developing Android applications. It discusses the Android development environment and tools, designing user interfaces, integrating Google Maps and Play Services, using fragments and loaders, making network requests, and common design patterns like AsyncTask. The document also covers additional topics like notifications, contextual menus, WebViews, and checking network connectivity. It serves as a useful reference for Android developers to understand essential APIs and best practices.
Automated testing of mobile applications on multiple platformsjobandesther
油
The document discusses automated testing of mobile applications across multiple platforms. It describes how traditional manual testing can take hundreds of hours for each release but UI automation can test full apps in minutes and be easily repeated. It also explains that test programs need to be written separately for each mobile platform which is wasteful effort. The document then introduces a programming language translator that allows writing tests once that can run on any platform by translating the code into the native language of each platform. This avoids wasted effort of writing tests multiple times.
This document provides guidance on developing plugins for Unity3D games. It discusses what plugins are, reasons for developing plugins, and interfaces for calling plugin code from Unity. It also provides platform-specific guidance on developing plugins for iOS and Android, including how to handle platform-dependent code, interface with native platforms, and address common issues. The document recommends tools and best practices for plugin development and offers to discuss the OAuth SDK and answer questions.
Plugin allows game code to call functions from native code libraries written in languages like C/C++. Plugins are needed to access device capabilities that Unity cannot support natively, reuse existing native components, customize games beyond what Unity assets allow, and address cross-device and cross-platform requirements. Plugins for different platforms like iOS and Android require platform-specific code and interfaces between the native code and Unity game code.
This document discusses various design patterns used in Symfony2 frameworks such as Front Controller, Decorator, Factory Method, Abstract Factory, Builder, Proxy, Mediator, Strategy, Data Mapper, Visitor, and MVC. It also discusses anti-patterns like Design for the Sake of Design, Overengineering, The Blob, Reinventing the Wheel, and Spaghetti Code. The key principles discussed are inversion of control, dependency injection, and decoupling. References for further reading on design patterns, inversion of control, and anti-patterns are also provided.
This document discusses jQuery, a popular JavaScript library. It provides an overview of jQuery, describing how it works, its main features like DOM manipulation and AJAX capabilities. It also discusses jQuery UI and several tools for testing jQuery code, including QUnit, jQuery Lint and TestSwarm. The presentation concludes by mentioning an upcoming demo on performance analysis and a future spot on additional related technologies.
Non Conventional Android Programming Enguest9bcef2f
油
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
In this talk, I'm presenting an alternative approach to thinking about UI and navigation on iOS - one that is declarative and that I find easy to reason about in a big application. I did live coding and the link is on the last slide. Enjoy!
This document provides an overview of key concepts in iOS development. It discusses topics like the iOS architecture, UIViewController, Core Animation, Core Data, networking with NSURLSession and AFNetworking, collection classes, property attributes, and supporting multiple device generations and chip architectures. It also covers memory management techniques, state preservation, multitasking capabilities, and using static libraries.
Video here: http://youtu.be/eeGvMkicAv4
Xamarin.iOS enables us to write native applications that take full advantage of iOS's large number of libraries - from the user interface to motion processing, graphics, audio, cameras, sensors, networking... This incredibly rich software platform runs all day long in the pockets of hundreds of millions of people. When you couple it to .NET, you have a programmer's dream environment.
So let's learn to program iOS! In a little over an hour we will:
Browse through iOS's APIs to find interesting bits of functionality
Explore the architecture of UIKit - the user interface framework for iOS
Use Xamarin Studio to write and debug applications
With this introduction you will have enough knowledge to write your first application that can use all the richness of iOS and all your favorite code written in .NET. Oh, and it will run on beautiful devices too.
With the introduction of the iPhone 6s and the iPhone 6s Plus, Apple added 3D Touch, a new dimension to the multi-touch user interface. This new technology senses how deeply users press the display and provides a new way to interact with the iPhone.
In iOS 9, Apple introduced several 3D Touch APIs. In this session I will explain in a practical way what is 3D Touch and how you can benefit from it in your app. I will cover home screen quick actions, peek and pop actions and also how to use the force properties of a UITouch event.
Eclipse Summit Europe '10 - Test UI Aspects of Plug-insTonny Madsen
油
This document contains a presentation about testing the user interface (UI) aspects of Eclipse plug-ins. It discusses using JUnit and simple tools to test UI parts of an application. It provides various strategies for testing perspectives, views, editors, and interaction using mouse/keyboard events, widget manipulation, and command execution. It also covers parameterized tests and ensuring no error messages are logged.
iOS development Crash course in how to build an native application for iPhone.
i will be start from beginning till publishing on Apple Store step by step.
this session # 4
A complete Android UI development guideline with Jetpack Compose is described here.
Reference link:
https://developer.android.com/jetpack/compose/documentation
This document discusses unit testing Android applications using Robolectric. It introduces Robolectric as a tool that allows loading and testing Android classes in pure Java projects. It then discusses various testing techniques using Robolectric including mocking Android classes and context, using spies, and reducing the use of shadows by leveraging value qualifiers. The document emphasizes removing shadows as much as possible to get closer to real code.
This document provides an overview of key concepts for developing Android applications. It discusses the Android development environment and tools, designing user interfaces, integrating Google Maps and Play Services, using fragments and loaders, making network requests, and common design patterns like AsyncTask. The document also covers additional topics like notifications, contextual menus, WebViews, and checking network connectivity. It serves as a useful reference for Android developers to understand essential APIs and best practices.
Automated testing of mobile applications on multiple platformsjobandesther
油
The document discusses automated testing of mobile applications across multiple platforms. It describes how traditional manual testing can take hundreds of hours for each release but UI automation can test full apps in minutes and be easily repeated. It also explains that test programs need to be written separately for each mobile platform which is wasteful effort. The document then introduces a programming language translator that allows writing tests once that can run on any platform by translating the code into the native language of each platform. This avoids wasted effort of writing tests multiple times.
This document provides guidance on developing plugins for Unity3D games. It discusses what plugins are, reasons for developing plugins, and interfaces for calling plugin code from Unity. It also provides platform-specific guidance on developing plugins for iOS and Android, including how to handle platform-dependent code, interface with native platforms, and address common issues. The document recommends tools and best practices for plugin development and offers to discuss the OAuth SDK and answer questions.
Plugin allows game code to call functions from native code libraries written in languages like C/C++. Plugins are needed to access device capabilities that Unity cannot support natively, reuse existing native components, customize games beyond what Unity assets allow, and address cross-device and cross-platform requirements. Plugins for different platforms like iOS and Android require platform-specific code and interfaces between the native code and Unity game code.
This document discusses various design patterns used in Symfony2 frameworks such as Front Controller, Decorator, Factory Method, Abstract Factory, Builder, Proxy, Mediator, Strategy, Data Mapper, Visitor, and MVC. It also discusses anti-patterns like Design for the Sake of Design, Overengineering, The Blob, Reinventing the Wheel, and Spaghetti Code. The key principles discussed are inversion of control, dependency injection, and decoupling. References for further reading on design patterns, inversion of control, and anti-patterns are also provided.
This document discusses jQuery, a popular JavaScript library. It provides an overview of jQuery, describing how it works, its main features like DOM manipulation and AJAX capabilities. It also discusses jQuery UI and several tools for testing jQuery code, including QUnit, jQuery Lint and TestSwarm. The presentation concludes by mentioning an upcoming demo on performance analysis and a future spot on additional related technologies.
Non Conventional Android Programming Enguest9bcef2f
油
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
In this talk, I'm presenting an alternative approach to thinking about UI and navigation on iOS - one that is declarative and that I find easy to reason about in a big application. I did live coding and the link is on the last slide. Enjoy!
This document provides an overview of key concepts in iOS development. It discusses topics like the iOS architecture, UIViewController, Core Animation, Core Data, networking with NSURLSession and AFNetworking, collection classes, property attributes, and supporting multiple device generations and chip architectures. It also covers memory management techniques, state preservation, multitasking capabilities, and using static libraries.
Video here: http://youtu.be/eeGvMkicAv4
Xamarin.iOS enables us to write native applications that take full advantage of iOS's large number of libraries - from the user interface to motion processing, graphics, audio, cameras, sensors, networking... This incredibly rich software platform runs all day long in the pockets of hundreds of millions of people. When you couple it to .NET, you have a programmer's dream environment.
So let's learn to program iOS! In a little over an hour we will:
Browse through iOS's APIs to find interesting bits of functionality
Explore the architecture of UIKit - the user interface framework for iOS
Use Xamarin Studio to write and debug applications
With this introduction you will have enough knowledge to write your first application that can use all the richness of iOS and all your favorite code written in .NET. Oh, and it will run on beautiful devices too.
With the introduction of the iPhone 6s and the iPhone 6s Plus, Apple added 3D Touch, a new dimension to the multi-touch user interface. This new technology senses how deeply users press the display and provides a new way to interact with the iPhone.
In iOS 9, Apple introduced several 3D Touch APIs. In this session I will explain in a practical way what is 3D Touch and how you can benefit from it in your app. I will cover home screen quick actions, peek and pop actions and also how to use the force properties of a UITouch event.
Eclipse Summit Europe '10 - Test UI Aspects of Plug-insTonny Madsen
油
This document contains a presentation about testing the user interface (UI) aspects of Eclipse plug-ins. It discusses using JUnit and simple tools to test UI parts of an application. It provides various strategies for testing perspectives, views, editors, and interaction using mouse/keyboard events, widget manipulation, and command execution. It also covers parameterized tests and ensuring no error messages are logged.
iOS development Crash course in how to build an native application for iPhone.
i will be start from beginning till publishing on Apple Store step by step.
this session # 4
A complete Android UI development guideline with Jetpack Compose is described here.
Reference link:
https://developer.android.com/jetpack/compose/documentation
The document provides an overview of the Objective-C runtime and how it can be used in practice. It begins with introductions and then covers key topics like what the runtime is, how it supports object-oriented features in Objective-C, and how Foundation provides a simpler interface to interact with the runtime. It then demonstrates various runtime capabilities like dealing with classes, protocols, messages, and dynamic messaging. It also covers more advanced techniques like lazy method resolution, forwarding, swizzling, dynamic class generation, and property generation. Code examples are provided to demonstrate many of these runtime features in practice.
This document discusses migrating from Objective-C to Swift and some of the benefits and challenges of doing so. It notes that Swift will provide gains like types, generics, and simplicity while some Objective-C features like .h/.m files will be lost. It provides recommendations for how to start migrating an existing Objective-C project to Swift like adding imports to a bridging header and optimizing Objective-C for Swift. Specific examples are given of how Swift can make code easier to read and maintain.
MOPCON 2014 - Best software architecture in app developmentanistar sung
油
Talking about how to build smart design and architecture for app development. Let your app can easy develop and deploy components on your app. And more topic of version control and quality improvement.
This document discusses principles for architecting JavaScript applications to be testable. It recommends:
1. Using interfaces rather than implementations to define behavior and allow for loose coupling and swapping of implementations.
2. Applying design patterns like decorator and abstract factory to handle cross-cutting concerns like logging and profiling separately from the core functionality.
3. Injecting all dependencies through constructor injection to make dependencies explicit and avoid tight coupling.
4. Programming to interfaces to allow for mocking and isolation of units for testing purposes.
This document provides an overview and demonstration of accessibility features in iOS, including:
- VoiceOver, Zoom, and other built-in accessibility features in iOS
- New features introduced in iOS 6 like Guided Access and enhanced support for hearing aids
- How to add accessibility to apps using the UIAccessibility API to provide labels, hints, and notifications
- Advanced techniques like supporting accessibility without views by using UIAccessibilityElements
- A demonstration of using the API and new features introduced in iOS 6
3D Touch: Preparando sua app para o futuro do iOSRodrigo Borges
油
Nessa palestra vamos falar sobre o 3D Touch e como ele ser叩 uma das bases de intera巽達o dos usu叩rios na pr坦xima vers達o do iOS. Mostrarei como integrar sua app com recursos do 3D Touch como o Peek & Pop e discutiremos sobre as novidades lan巽adas na WWDC 2016.
The document provides an overview of iOS app development basics including building a "Hello World" app, application architecture and states, coding in Objective-C, short message sending, storyboarding, and static table views. It discusses setting up an Xcode project, the app delegate, view controllers, windows, and application states like active, background, and suspended. It also covers Objective-C basics like properties, accessors, and blocks.
XCUITest for iOS App Testing and how to test with XcodepCloudy
油
This document discusses IOS app testing using XCTest and XCUITest. It covers the challenges of IOS automation, current tool options like Appium, XCTest, and XCUITest. It provides an introduction to XCTest and XCUITest, including how to create a basic automation script. It also discusses the impact of XCUITest on Appium, as Appium now proxies commands to XCUITest for IOS 9 and above, rather than the deprecated UIAutomation framework.
Leveraging parse.com for Speedy DevelopmentAndrew Kozlik
油
Parse is a mobile backend as a service that allows developers to rapidly build applications. It provides features for data storage, user authentication, push notifications, and analytics tracking. Developers can create, read, update and delete data schemalessly through an object oriented data model. Relationships between objects are also supported. Parse offers free and paid plans with options for additional storage and request throughput. Integration is simple through SDKs for iOS and Android applications.
Presentation I did for the Orlando iOS Developer Meetup. It was originally intended to help those who were looking to build their first iOS applications, but turned into a presentation about good project management skills and how to manage your freelancing work.
Core Data is an object graph and persistence framework that allows storing and managing objects and relationships between objects. The Core Data stack includes the managed object model, persistent store coordinator, managed object context and persistent stores. Entities are represented by NSManagedObject subclasses and stored in a persistent store like SQLite. The managed object context acts as an in-memory scratch pad and saves changes to the persistent store. Queries use NSPredicate to fetch managed objects. Core Data handles object lifecycles and relationships and automatically saves changes between the context and store.
These are slide's from Mike Cabibbo's presentation to the Orlando iOS Meetup group. He built Math With Your Friends, a mashup of math problems and scrabble. Be sure to download the game when it releases on iOS.
This is a presentation given by Brian Stabile to the Orlando iOS Developer Meetup group. He outline the ups and downs of developing Astro Crow's game "The Last Ace of Space".
Like the slides? Learn something useful? Show your appreciated by downloading The Last Ace of Space or a measly 99 cents via:
http://itunes.apple.com/us/app/the-last-ace-of-space/id429228289?mt=8
The document discusses various ways to generate revenue from mobile apps, focusing on using Admob for advertising. It provides steps for developers to integrate Admob ads into their apps, including registering for an Admob account, creating an app listing, importing the Admob SDK, generating banner ads with the publisher ID, and testing. The document also discusses benefits of ad-supported apps and strategies for long-term monetization through advertising.
2. Requirements
iOS 9
Xcode 7
iPhone 6S or 6S Plus
ALWAYS check to make sure force touch is available
func isForceTouchAvailable() -> Bool {
var isForceTouchAvailable = false;
if (self.traitCollection.respondsToSelector("forceTouchCapability")) {
isForceTouchAvailable = self.traitCollection.forceTouchCapability == UIForceTouchCapability.Available
}
return isForceTouchAvailable
}
6. Dynamic Shortcuts
Create an array of UIMutableApplicationShortcutItems
Arguments Include:
type
localizedTitle
localizedSubtitle
icon
userInfo
Set UIApplication singleton shorcutItems property
7. Code Sample
func loadShortcutItems() {
var shortcutItems = [UIMutableApplicationShortcutItem]()
// Loop through each character and create shortcuts
for character in characters! {
let item = UIMutableApplicationShortcutItem(
type: "com.codefortravel.backtothefuture.character",
localizedTitle: character.characterName!,
localizedSubtitle: "Tap for more details",
icon: nil, // No icon
// icon: UIApplicationShortcutIcon(templateImageName: "flux-
capacitor")
// icon: UIApplicationShortcutIcon(type: .Add),
userInfo: ["characterName" : character.characterName!]
)
shortcutItems.append(item)
}
UIApplication.sharedApplication().shortcutItems = shortcutItems
}
8. Responding to Shortcuts
Application delegate implements
application:performActionForShortcutItem:
Shortcut type identi鍖es different shortcuts
Properties can be passed through userInfo
Usage examples:
Perform UI updates
Handle deeplinking
9. performActionForShortcutItem
func application(application: UIApplication, performActionForShortcutItem shortcutItem:
UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
if (shortcutItem.type == "com.codefortravel.backtothefuture.fluxcapacitor") {
let VC = getRootController() as! ViewController
VC.switchTimeTravelButtonLabel()
} else if (shortcutItem.type == "com.codefortravel.backtothefuture.character") {
let characterName = shortcutItem.userInfo!["characterName"] as? String
let VC = getRootController() as! ViewController
VC.loadDetailForCharacter(characterName!)
}
}
func getRootController() -> UIViewController? {
let navVC = self.window?.rootViewController as? UINavigationController
let VCs = navVC?.viewControllers as [UIViewController]?
if (VCs?.count > 0) {
let VC = VCs![0] as! ViewController
return VC
}
return nil
}
11. Deeplink Code Sample
func loadDetailForCharacter(characterName : String) {
let filteredCharacters = characters.filter() {
$0.characterName == characterName
}
if (filteredCharacters.count > 0) {
let character = filteredCharacters[0]
let detailVC = storyboard?.instantiateViewControllerWithIdentifier(
"CharacterDetailViewController") as? CharacterDetailViewController
detailVC?.character = character
self.navigationController?.popToRootViewControllerAnimated(false)
self.showViewController(detailVC!, sender: self)
}
}
12. Shortcut Limitations
Maximum of four menu items
Your app must support deep linking for view controllers
for maximum value
Shortcuts support up to two lines of text and one icon
Icons must be square, single color, and 35x35 points
User may turn 3D touch off, so monitor for changes to
traitCollections
Always test to ensure 3D touch is available
13. Testing in Simulator
SBShortcutMenuSimulator
https://github.com/DeskConnect/
SBShortcutMenuSimulator
Adds 3D touch ability to simulator
15. Implementation Steps
Check that 3D touch is available
Register the presenting VC as a preview delegate
Implement
previewingContext:viewControllerForLocation
Implement previewingContext:commitViewController
16. previewingContext:viewControllerForLocation
Register view with registerForPreviewingWithDelegate
Pass in view to detect force touch
Method returns CGPoint indicating where in the view 3D
touch was implemented
For UITableViews and UICollectionViews, get the cell
located at that point
Handle any business logic
Instantiate the preview view controller and return
17. Code Sample
func previewingContext(previewingContext: UIViewControllerPreviewing,
viewControllerForLocation location: CGPoint) -> UIViewController? {
let indexPath = tableView?.indexPathForRowAtPoint(location)
let row = indexPath?.row
let character = characters[row!]
let detailVC =
storyboard?.instantiateViewControllerWithIdentifier("CharacterDetailViewCo
ntroller") as? CharacterDetailViewController
detailVC?.character = character
detailVC?.preferredContentSize = CGSize(width: 0, height: 280)
return detailVC
}
18. previewingContext:viewControllerToCommit
Executed when user does second 3D touch action
Handle any 鍖nal logic
Call showViewController to display the VC in full
screen
func previewingContext(previewingContext: UIViewControllerPreviewing,
commitViewController viewControllerToCommit: UIViewController) {
showViewController(viewControllerToCommit, sender: self)
}
19. Parting Words of Advice
Never use 3D touch as a primary interaction mechanism
Use it to add optional functionality
Educate your users that it exists
Measure user engagement to determine best shortcuts
Consider long press to replace 3D touch when
unavailable
20. Resources
Apple - Getting Started with 3D Touch
Laurenz.io - Peek and Pop Tutorial
the-nerd.be - Another Peek and Pop Tutorial
21. Outta Time
Andrew Kozlik
@codefortravel
UniKey
https://github.com/akozlik/Back-to-the-Future
Code for Orlando
22. Credits
Icon made by DKNG - http://modular4kc.com/
2014/07/11/17065/