Presentations – Cocoanetics https://www.cocoanetics.com Our DNA is written in Swift Sat, 06 May 2017 11:23:26 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.3 39982308 Survival of the Swiftest https://www.cocoanetics.com/2016/06/survival-of-the-swiftest/ https://www.cocoanetics.com/2016/06/survival-of-the-swiftest/#respond Mon, 20 Jun 2016 06:25:13 +0000 https://www.cocoanetics.com/?p=10246 While preparing for my talk for mDevCamp 2016, I was working on a new project interfacing with a RESTful web service. This allowed me to design the API without having to consider compatibility with Objective-C. As a result I could employ several advanced Swift techniques, and in this talk I am explaining these.

When starting with Swift, I consider all those techniques “High Hanging Fruit” which have no representation in Objective-C. As such you could not employ these if you want your API to be usable from Obj-C code.

ClKMrRvWAAA_dX8

I am trying to draw the parallel with the Theory of Evolution, where stretching for the higher branches supposedly caused giraffes to evolve longer necks and legs due to those making them fitter for survival. By analog, I propose that we developers should reach for advanced Swift techniques whenever we can, as to preserve our long term advantage.

By combining associated values in enumerations with generics and ErrorType-based error handling you naturally end up with a simpler and more concise solution for the presented use case. And the overall result being way more delightful for me as a developer then having to stick with prior “best practises”.

When carrying through this thought process, I naturally gravitated to a similar solution as Rob Rix had invented in 2015: the Result framework. This was invented before Apple introduced try/catch error handling in Swift 2 as a way to model the success/failure result of calling a web service function.

Although I prefer working with try/catch for synchronous code, the Result-oriented model remains a perfect fit for asynchronous handing of web service requests. This, as well as the joy of figuring out how the pieces fit together informed this talk.

If you have the luxury of not having to consider ObjC compatibility, then you can open your mind to those fascinating Swift language capabilities.

The talk was also recorded by SlidesLive.

]]>
https://www.cocoanetics.com/2016/06/survival-of-the-swiftest/feed/ 0 10246
iOS Subscriptions 2.0 https://www.cocoanetics.com/2015/10/ios-subscriptions-2-0/ https://www.cocoanetics.com/2015/10/ios-subscriptions-2-0/#comments Sat, 10 Oct 2015 11:41:11 +0000 https://www.cocoanetics.com/?p=9895 In this talk, which I gave at Pragma Conference 2015, I am explaining the ins and outs of auto-renewable subscriptions.

My publisher Manning will give you 41% discount on all books with promo code ctwpragma, including mine!

When #pragma mark invited me as a speaker I knew that I would be giving two talks at Mobiconf just a week before. So I was a bit worried if I could prepare a good third talk. I offered them 3 talks to choose from and they decided on the one about subscription as this is still a relatively unknown subject.

I had given a talk on subscriptions 3 months earlier on a mixed-platform conference, but I felt that this talk was not quite complete. For one, I was presenting local sales receipt validation but did not offer any code for that. My mindset at that time was: “if anybody wants it, they would probably ask me and then I would open-source it.” Which didn’t happen.

With Swift 2 now out I felt good with starting a new project based on it. This would become the main goodie of my talk. I also polished and streamlined the slides to make it a worthy “2.0” version and set it apart from my prior talk.

I took 42 :22 min for 41 slides, i.e. 62 seconds per slide. The rule of one slide per minute continues to work out for me.

The mentioned open-source project Kvitto for locally parsing and validating app receipts is on GitHub.

PS: After my talk I was told by an attendee of the conference that Apple no longer requires that you add the subscription durations and prices in the app store text.

]]>
https://www.cocoanetics.com/2015/10/ios-subscriptions-2-0/feed/ 1 9895
Monetizing Your Apps with Subscriptions https://www.cocoanetics.com/2015/07/monetizing-your-apps-with-subscriptions/ https://www.cocoanetics.com/2015/07/monetizing-your-apps-with-subscriptions/#comments Fri, 10 Jul 2015 06:53:02 +0000 http://www.cocoanetics.com/?p=9783 On mDevCamp 2015 Prague I gave a talk on auto-renewable subscriptions. One month earlier, at WWDC and the time leading up to it, I had learned a great deal about this subject and so I worked my experiences into a concise talk so that you will have an easier time implementing subscriptions into your apps.

mDevCamp is organized by AVAST. Yes, those are the virus lab guys. Some time ago they had acquired a Czech mobile development firm, one of whose founders is now the Chief Happiness Officer, Michal Šrajer. He certainly made sure that all speakers’ happiness got maximized.

I was happy to be invited as one of the few English speakers and so gave it my best. The conference was well organized and happened in a university building. You can see a hint of that if you look at the auditorium which you see a few times in my video.

Presenting at mDevCamp

Presentations where recorded by SlidesLive. This was awesome because the MacBook I brought was having severe performance issues and this way I could fully concentrate on giving the talk. I had slightly too high expectations though of the recording.

SlidesLive has a tool that captures still images off the presenter’s laptop every few seconds, every time a bigger change is detected. This works for 90% of presentations which are mostly static, but fails to capture the excitement that my elaborate Keynote animations are conveying. So – with Michal’s permission – I had to remix it.

Please forgive the slightly blurry parts, SlidesLive only uploaded the 360p version to YouTube and I didn’t want to waste any more time trying to get a HD version of it. I downloaded the video – which had great audio – and recorded the Keynote presentation in 720p. Then I put both together with Final Cut Pro X.

I think it is quite viewable. What do you think?

If you prefer the side-by-side version without animations you can still get that at SlidesLive.

I am hoping that this information is useful for everybody who is considering to monetize their apps with auto-renewable subscriptions. I am looking back on a successful launch of the app for which I had to learn of of this. If I didn’t have the labs at WWDC the whole process would have taken more than a month.

Conclusion

mDevCamp 2015 was great, even many attendees gave feedback that there should be more English-language content. The Czech and Slovak languages might be similar enough to each other, but not exactly accessible to the rest of Europe. Michael told me after the survey results were in that next year it will be even more internationally oriented.

Auto-renewable subscriptions are an obscure topic, undeservingly so. If you follow a few simple rules then they are a viable monetization alternative to ads, especially for productivity apps.

]]>
https://www.cocoanetics.com/2015/07/monetizing-your-apps-with-subscriptions/feed/ 1 9783
Best practices running an iOS open source project on GitHub https://www.cocoanetics.com/2014/10/best-practices-running-an-ios-open-source-project-on-github/ https://www.cocoanetics.com/2014/10/best-practices-running-an-ios-open-source-project-on-github/#comments Sun, 05 Oct 2014 10:04:24 +0000 http://www.cocoanetics.com/?p=9312 This is the second talk (of two) I gave at Mobiconf 2014. The first one – about barcodes – is available to watch here.

Since I became full-time self-employed in January 2014 I have created and maintained several Open Source projects. I have developed a certain style – “best practises” – to keeping the projects in good shape. Because of this I felt it an easy second topic to prepare a talk for.

My outline was:

  • Structuring your project for the open source repository (core, demo, test)
  • Working with “the successful git branching model”
  • Using Resource Bundles to group your resources
  • No-worry auto-generated documentation via appledoc
  • How Travis-CI unit-testing simplifies dealing with pull requests
  • Implementing CocoaPods support
  • Working with GitHub issues, milestones and making shining releases

Here’s the result, slides are available as PDF.

More info about ProductLayer can be found here.

]]>
https://www.cocoanetics.com/2014/10/best-practices-running-an-ios-open-source-project-on-github/feed/ 1 9312
All You Need to Know to Leverage Barcodes in Your Apps https://www.cocoanetics.com/2014/10/all-you-need-to-know-to-leverage-barcodes-in-your-apps/ https://www.cocoanetics.com/2014/10/all-you-need-to-know-to-leverage-barcodes-in-your-apps/#comments Sun, 05 Oct 2014 09:58:52 +0000 http://www.cocoanetics.com/?p=9310 This is the first of two talks i gave at Mobiconf 2014. The second one – about Open Source – is available to watch here.

When Miquido asked me for proposals for two talks the first one was easy. Since I had been working on barcode-related technologies for the better part of a year, I felt that I had many interesting things to share.

My outline was loosely based on the table of contents of my book:

  • A primer on barcode technology – so you won’t embarrass yourself talking about it
  • The kinds of barcode symbologies supported in iOS and where to find them
  • Getting to know AV Foundation for barcode scanning
  • The case for generating barcodes on mobile devices, Core Image and BarCodeKit
  • Connecting the digital and physical worlds

And here’s the resulting talk. I recorded it with a label microphone on an old iPhone and recorded the slideshow with Quicktime Player. Slides are available as PDF.

More info about ProductLayer can be found here.

]]>
https://www.cocoanetics.com/2014/10/all-you-need-to-know-to-leverage-barcodes-in-your-apps/feed/ 4 9310
From Barcodes to Product Information https://www.cocoanetics.com/2014/10/from-barcodes-to-product-information/ https://www.cocoanetics.com/2014/10/from-barcodes-to-product-information/#comments Wed, 01 Oct 2014 21:08:03 +0000 http://www.cocoanetics.com/?p=9318 On the evening before Mobiconf I visited Cocoaheads Krakow to tell them about my book Barcodes with iOS and ProductLayer.

The talk gives a short introduction to the world of barcodes, then explains the reasoning behind the TOC of my book where barcodes provide the common thread through all chapters.

I recorded the talk with QuickTime Player and better sound with a lapel mic, but after upload I discovered I had used the lesser quality audio recorded with the screen capture. But I decided against replacing the video since you can hear some of the audience reactions this way. Slides are available as PDF.

If you haven’t done so yet, please buy my book while there is a 44% discount in effect, promo code mobicftw.

]]>
https://www.cocoanetics.com/2014/10/from-barcodes-to-product-information/feed/ 1 9318