A recovering IT Director, Walter heard the Siren's song of freelance work in 2010 and has been the owner and sole, human employee of Tyree Apps, LLC ever since. In addition to mobile development, Tyree Apps offers training and management consulting. Though the most lucrative projects are development for other companies, Tyree Apps creates a handful of iOS apps under their own name. When he isn't working or attending IT conferences Walter likes to play with his dog, keep his 1973 Beetle running and ensure that his children will have interesting stories to tell their therapists in adulthood.
During the development of an app for cyclists we evaluated a number of mapping solutions for iOS including ArcGIS, Mapquest, Bing, and Cloudmade in addition to MapKit. Come hear about what we learned and which one we settled on.
Apple has recently been working on making in app purchasing better for developers but it still has lots of moving parts. This talk will provide demo code for how to set that up on your server or a client's server and what other options adding a server gives you like promo codes for in-App purchase and gathering your own analytics data. Then, we will walk through how we set up a server back end to support non-renewing subscriptions, in-app promo codes and subscription sharing for some apps we’ve written. Apple provides lots of documentation and support for auto-renewing subscriptions, but if your content doesn't qualify for auto-renewing then you have to take care of lots of extra tasks. A demo project and example server code will be provided.
This hands-on course will introduce attendees to the fundamentals and tools used by all iOS developers. The morning will focus on fundamentals of Swift and the tools available. The afternoon will explore the multitude of API’s and libraries that allow us to take advantage of the iOS hardware. We will iterate on an application that downloads data from the “internet” and presents it for display. All attendees will receive the source code of the completed application, along with extra features and modules for further exploration. The course and the sample app are structured so that more advanced attendees can jump ahead to explore advanced topics. All code samples will be provided in Swift.
If you were first exposed to Core Data using the demo apps in XCode then you are likely not taking advantage of some of the better features of Core Data. Also, if you were a SQL ninja and are frustrated that Core Data can't seem to do the simplest of tasks, you might be missing a few things. We will start off by presenting a few patterns for accomplishing common tasks like background updating and efficient fetching. Then we will look at the sparsely documented Core Data Model editor and how to utilize Relationships, Fetched Properties, Fetch Requests, Configurations and the UserInfo dictionaries. We will also look at the various options that the Core Data Model editor presents and look at creating NSManageObject subclasses. After exploring what Apple provides, we will highlight how projects like mogenerator and Magical Record fill in the gaps for us. We will update our demo app to show how the code changes when we add these to existing projects.
Core Data has the ability to make you love it and hate it (often within the same hour). However, if you understand what it is good for it can be a real asset to your project. We will start off by presenting the underutilized parentContext property that helps with accomplishing common tasks like background updating and efficient fetching. We will also explore some strategies for getting test data into an app for those many XCTests we are all writing. Then we will take some time to look at our options for getting data onto a server. After reviewing what Apple provides, we will highlight some of the community provided projects for things like cloud syncing and object subclassing.
As the market for iOS is maturing, more and more projects that were written by consultants or employees that are long gone fall into our laps. Come learn how you can get up to speed quickly with a codebase when the plentiful, accurate and detailed documentation that the previous team created isn’t quite enough. Adding to that, the fast pace that Apple is changing our environment can lead to some interesting bugs as you update project files from version to version and the cruft builds. We’ll provide some examples to save you the hours that it took us to find them. We will also look at tools like Reveal and Spark Inspector which prove to be invaluable when working with complex view hierarchies.
This third iteration of our Core Data talk briefly reviews some of the things we used to complain about that have been fixed. We will cover how to implement some of the lesser advertised parts of Core Data. We also devote time to XCTest and strategies for generating valid test data. Finally we evaluate iCloud and other 3rd party options as data syncronization solutions. If you've seen other versions of this Core Data talk, expect less than 8.26% of recycled material.
If you came to mobile development because of the iPhone or abandoned the Mac development after being jilted by Copland; it may be time to explore what is happening in the world of the desktop computer. Tyree Apps is actively porting their Massage Therapist Notebook app from the iPad to the deskop. We had no experience on the Apple desktop since Pascal was a first class language. Some parts of our iPad app easily translated to their OSX counterparts. Other parts, well, you'll have to come to the talk. If you are considering porting an iOS app to the desktop, or you just want to branch out this talk will help you get started and provide one developer's perspective.
In 2014 Tyree Apps took on a project that forbade the use of 3rd party libraries. This seemed like a managable thing and the project began. However, when we realized this constraint applied to the build system, we cried a little. This talk outlines the build system we constructed with Xcode server, bots, and as little shell scripting as possible. If you are planning to leave Jenkins, Hockey, TestFlight or GitHub perhaps you want evidence that you should never leave them) then this talk is for you. Detailed scripts and code will be provided for download, but the talk will be more high-level than how-to.
One developer or a small team can get out resourced by a larger team. However, automation still seems to be underutilized iOS and OS X projects. Without robust solutions from Apple, many alternatives have been built and piecing them together often made us abandon automation projects; yet automation is a key to making a small team more productive. With the upgrades introduced at WWDC, it seems that we can finally use the Apple provided robots on projects that are more complicated than Hello World. When you have robots handling building, testing, device provisioning, and TPS report generation; you can spend less time on the mundane and more time in your leather chair, stroking your white cat.
This talk begins by looking at some of the new debugging and reverse engineering tools that have recently appeared. Then we dive into documentation options and admonish you to leave a visible trail for the developer that inherits your code. Next, we will highlight strategies for adding testing to legacy code as well as how we have added testing to existing projects. Sprinkled throughout we will look at the most interesting and wierd bugs we've found during our recent explorations and offer advice on our thought process for figuring out their causes.
Having recently completed a project that uses AVFoundation and CoreImage to facilitate depositing checks; we have a plethora of how-to-dont’s about shape recognition and image capture with the iOS camera hardware. After a survey of rectangle, face and QR code recognition strategies, we dive into how to make these user friendly and tricks for incorporating CoreImage recognition into your apps.
This all day workshop will focus on strategies for debugging and the tools we have to find and exterminate the oddest of bugs in existing code. After reviewing our tools and some methodology for debugging; we will practice on contrived and real-world examples. We will tackle easy but common items first and then move on to harder examples involving memory pressure; wonky networks and race conditions. Then we’ll move on to truly bizarre problems that couldn’t ever happen in real life, could they? Attendees are encouraged to bring interesting bugs from their own work for the class to study.
Animation timings and gameplay actions are controlled by numerical values. However, discovering those values is much harder than measuring the pixel sizes of static images from a designer. This talk provides ideas and strategies for how you can make working models in Xcode and which values are the most important when you are trying to decide how to delight your users with your animations and gameplay.
Details coming soon!