360iDev 2015 Conference Highlights

Check out some of the best talks and highlights from this year’s 360iDev iOS conference! By Tim Mitra.

Leave a rating/review
Save for later
Share
You are currently viewing page 3 of 4 of this article. Click here to view the first page.

Solving Auto Layout Problems – Jack Cox

In another standing-room only talk, Jack Cox covered many tips and tricks for working with the often-challenging world of Auto Layout. He covered table views and scroll views, which by their variable nature create challenges for Auto Layout. Like Sam’s workshop, Jack covered stack views and the issues that surround them. For each issue, he provided a value on the “Auto Layout pain scale” with scroll views and table views providing moderate pain, while stack views present the least amount of pain. Debugging Auto Layout, he said, provides the worst kind of pain. :]

Jack provided a walkthrough debugging session dealing with the root causes of Auto Layout debugging pain: conflicts and ambiguity. Jack demonstrated one interesting way to reveal the workings under the hood: while breaking down the Visual Formatting Language, he explained how to convert the console output of po [[UIWindow keyWindow] _autolayoutTrace] into a formula that makes sense.

Jack’s Auto Layout Problem’s on GitHub

Sam explaining angry contraints

Sam explaining angry contraints

Mastering Auto Layout – Justin Williams

[Video link]

Justin Williams’ talk on Auto Layout began by covering the new iOS 9 layout anchors and the default 8-pt values set by Apple. He switched to the code and demonstrated how to modify the layout anchors through increaseMargin() or decreaseMargin() actions. Expounding further on the new hotness of layout anchors, he once again used code to create a simple form with its view elements centered neatly in a minimum number of lines.

His third coding demonstration covered the new Layout Guides, which can simplify complex layout scenarios in a minimal amount of code. He closed out the session by showcasing some Auto Layout debugging tips. Similar to others who spoke on Auto Layout, he suggested using the identifier property on constraints, which you can print out to the console and use to identify the element’s constraints in the output. You can then output a view’s constraints by overriding viewDidLayoutSubviews() like this:

override func viewDidLayoutSubviews()
    {
        super.viewDidLayoutSubviews()
        print("self.view.constraints = \(self.view.constraints)")
    }

Justin’s Mastering Auto Layout on GitHub

raywenderlich.com team members Aaron Douglas, Marin Tordorov, Derek Selander, Ellen Shapiro and Ryan Poolos

raywenderlich.com team members Aaron Douglas, Marin Tordorov, Derek Selander, Ellen Shapiro and Ryan Poolos

Fun & Games

The conference was more than just talks – there was some fun & games too!

Stump Jr 360: Not Dead Yet – Hosted by Tom Harrington

Presenting the…Experts?

Presenting the...Experts?

The second annual “Stump the Experts Speakers 360” picks up where the WWDC favorite “Stump the Experts” leaves off. A rag-tag collection of “experts” takes on the gathered audience in a game-show style battle of inane Apple trivia. The hosts present questions to challenge the audience, who in turn write trivia questions on 3×5 index cards.

The event is rife with comedic moments, and most often useless trivia, with points awarded to each side. Prizes consist of extremely valuable 5 1/4″ inch floppies that may have been overwritten, old eWorld and Newton stickers and bits of a tree stump from Tom’s own backyard. This session is a true highlight, and I look forward to many more years of Stump the Speakers 360 or whatever they choose to call it.

Full disclosure: I did manage to correctly answer a question in both the first and second “Stump”! :]

Game Dev Jam – hosted by Tom Ortega

360f-gamejam

Each year I’ve attended 360|iDev there’s been an all-nighter dev jam, where bleary-eyed developers show off their work first thing in the morning to the collected masses. Three years ago, Sprite Kit had just been released, so there were lots of games produced based on the new framework as well as Unity and Cocos2D.

This year’s game jam featured WatchKit app and several games, one of them built by three developers — including raywenderlich.com team member Ryan Poolos — who recently took the indie plunge. The game dev jam and accompanying board game night provided a great way to socialize and collaborate with other developers from around the world.

Other Interesting Talks

There are a few more other interesting thoughts that I thought you might like to hear about.

Apple Pay What Happens When You Tap – Stephan Huda

[Video link]

Stephan Huda, a principal engineer at Shopkeep, covered the ins and outs of paying for services with credit cards, near field communication (NFC), ApplePay and loyalty programs. Delving into the mechanisms of each, he began by explaining what information is stored in a credit card’s magnetic strip. He then presented an overview of the transaction process, from the merchant terminal, through a payment processor, to the card issuer. The transaction travels from the issuer to the acquirer who sends the approval back to the merchant.

He then described how NFC payments are processed using cryptography and a “secure element” chip in your device. While your device’s chip is powered by a nearby NFC reader, the secure element combines your account, a secure key and a unique transaction key. The transaction follows a similar process to the credit card, but with the extra encoded information related to the active transaction.

The details behind the payment process was covered lightly “with lots of hard waving” in Session 701 at WWDC 2015, but the exact process remains undisclosed by Apple. Stephan speculated that a transaction contains a series of merchant identifiers along with encrypted information in a manner that may be similar to NFC.

Localization Explained – Ellen Shapiro

360g-ellen

I attended the talk of raywenderlich.com team member Ellen Shapiro mostly out of curiosity, having employed localization in several apps myself. To my surprise and delight, Ellen’s talk illuminated many aspects of localization that I either wasn’t aware or hadn’t considered. She began with the statistics that 66% of Apple’s revenue comes from outside of the United States — 41% from China alone.

Localization, or as Ellen prefers, “internationalization”, is more complicated than it appears. Ellen presented a complete set of considerations and tips when adapting your app for a broader audience. Using NSLocalizedString along with a key and comment is the first step most developers are aware of. Running a genstrings script on a Swift or Objective-C file will generate a “.strings” file which can then be sent out to create translation files and placed into relative lprog folders. Ellen pointed out that the Base.lprog is the fallback location for missing translations.

Storyboards can also support localization using a strings file that bears the storyboard’s name. Ellen noted that numeric values are often displayed and handled differently in other languages and developers need to be aware of the different date formats and timezones used internationally. Developers should be mindful that iOS 9 will automatically handle right-to-left language orientations. Also new in iOS 9 is NSPersonNameComponentsFormatter, which deals with the various ways first names, family names, initials and titles display across languages. All in all, Ellen’s talk was good overview if you’re planning to sell your apps in a worldwide market.