270 attendees and 59 speakers recently descended upon Denver, Colorado to take part in the annual 360iDev conference.
360iDev 2017 had much to choose from; with seven workshops on Sunday and a whopping 58 sessions over the next three days to choose from, it was easy to find find a mix of sessions tailored to your interests — yet hard to narrow down the field of amazing talks and workshops!
In this article, I’ll share my thoughts on the conference and help you sort through all the great presentations to highlight the “can’t-miss” moments from the conference. Let’s dive in!
Keynote – Finding Your Place on the Internet – Soroush Khanlou
The conference opened with a keynote by Soroush Khanlou, a New York-based iOS developer and host of the FatalError podcast. Sourosh spoke about how you could go about making a name for yourself in the mobile app development industry with the many tools available to you, such as social networks, blogging, and podcasting. Like many worthwhile pursuits, there are no shortcuts to success; many hours of consistent effort are what it takes to make an impact. Sourosh’s own success came from many years of blogging and staying active in the community.
He suggests to look at what your idols have done and learn how they attained their success — which more likely than not took a long time. Simply copying their work and their approach is not enough. One example Sourosh gave was of a copycat’s efforts to mimic a successful Instagrammer — even to the point of flying around the world to reproduce styles and poses. But compare the number of likes between the two, and the comparison is nonexistent.
Find your own “thing”. Take inspiration from your idols, but use your own voice. The internet is huge, and there is room for everybody and everything. Keep at it — be consistent and your audience will find you.
I Wish They Had That In My School – Jessi Chartier
Jessi Chartier is focused on what’s going on — or rather, going wrong — in the classroom. According to a recent study, she says that a million jobs in computer science will go unfilled by 2020. Less than 25% of high schools participate in Advanced Placement computer science courses, and many of those AP programs put theory before practice. Misguided information about what businesses require leads the curriculum to cover things such as Java development, instead of real-world needs like iOS development and mobile app development in general.
One of the main problems, she continues, is the lack of instructors. To teach at a high school level, teachers need a CS degree. Jessi is all about turning teachers into developers so they can instruct the next generation. “It’s easier to teach a teacher to develop than it is to teach a developer to teach,” she says. Her efforts also focus on helping school administrators realize that the world of coding is diversified. Meeting with administrators to help them understand the field is important, as is the fact that you don’t really need a CS degree to be viable in the mobile app development industry.
Her organization, Mobile Makers, treats learning to code like an apprenticeship and starts with coding before the theory. Otherwise, “It’s like trying to teach piano, by listening to Mozart, without giving them a piano to play with.” Jessi is also an organizer of App Camp for Girls, which aims to get girls and those who identify as girls to see coding as a career path. Organizations like these focus on getting coders to work in Xcode right away. Playgrounds are great as a digital sketchbook, but actually building real apps in Xcode goes a long way. Of course, Jessi goes into more detail than this short article can cover, and you should definitely check out the video of this talk.
Fun With iOS 11 Workshop – Sam Davies
If you were fortunate enough to attend the Sunday workshop, you would have seen fellow team member Sam Davies’ workshop on new things in coming in iOS. Sam delved into the abilities of the Encode and Decode protocols to create and parse some JSON data. He then went on to show how these come together under the Codable protocol.
Next, Sam had us working in the Drag and Drop framework, taking us slowly through adding draggability to the selected objects, and then through the ins and outs of accepting a dragged object and dropping it into place. He took time to explain properly updating the views accounting for the existing items and updating the data after the drop.
Personally, I think the coolest part of the workshop was adding CoreML to a table’s search function. In the example in the workshop, we added a CoreML model along with Natural Language Processing to search the data for words in similar context. For instance, “dance” also successfully includes “dancing” in the result. Using a sentiment-based model, the app could look at the rating of movie in the sample data and apply the appropriate emoticon. Very cool.
Practical Security – Rob Napier
Rob Napier is a builder of tree houses, hiker, proud father, and sometimes developer. His talk on security starts from the realization that it’s hard to know if you are doing security right, as security seems to be a moving target with exploits and evil-doers all around.
His talk explained Apple’s approach to security and its reliance on improved encryption and cyphers in upcoming requirements. App Transport Security (ATS) was introduced in iOS 9. Unfortunately, many developers turn that feature off in order to work around the encryption requirements and focus on the coding of their apps.
Rob explained that if you do nothing else, you should encrypt traffic to and from your apps with HTTPS. Also, you should stop turning off ATS — leave it alone! If your server host can’t accommodate encryption, get a new server host.
Another technique Rob suggests is certificate pinning. He demystified this concept with some tips for validating and rotating your certificates over future years. He also explained the versions and advantages of data encryption built into iOS. The most interesting section of the talk was on handling user passwords. You don’t ever want to see your user’s passwords, nor do you want anyone else to see them, so hash them into a string. Then simply deal with the hashed string. The only good cryptographic hash he says is SHA-2, known by many names, and the SHA-256 to SHA-512 digests under SHA-2 are suitable for most uses.
Salting and stretching are additional techniques for hardening passwords. This entails salting the password by adding some unique prefix or suffix, such as a reverse domain name, to lengthen the string. Simply adding 80ms per brute-force guess attempt adds an additional 15 million years to crack the string. For best results, start with a good password, salt it, stretch it and bake at 350° heat for 30 minutes. Well maybe not the last part!
Rob also shared some great resources for beefing up your security. It’s definitely worth checking out this talk.
Deep Learning on iOS – Shuichi Tsutsumi
In his talk, Shuichi Tsutsumi presented some interesting examples of machine learning in action. He explored the evolution and use of deep learning on actual iOS devices. He pointed out some shortfalls of trying to reach a cloud based service without a network signal. Shuichi covers the current state of MPSCNNs and BNNs, which have been available since iOS 10.
If you’re curious about the steps required to use deep learning in your apps, he covers these in his talk, including the steps for training a model, implementing a neural network, and implementing an interface. CoreML, he goes on to explain, also employs MPSCNNs and BNNs under the hood. The former is more GPU-efficient, while the latter is more CPU-efficient.
In his final demo, he shows how simple it can be to use CoreML. Choose a model; if necessary, convert it to a CoreML model; then drop the model into your project. Add the Vision framework and you’re off and running with an app that can (mostly) identify the objects around you.
TensorFlow on iOS – Taylan Pince
Taylan Pince starts off by saying that he should have titled his talk “What the heck is a Neural Network anyway?” He tells of his numerous years working on a client project, Field Guide: a collector’s guide of natural history. Having started around 2014, his team started out by exploring computer vision to categorize around 100 species. Using clever image processing techniques, the catalog grew substantially. Eventually, they moved to ImageNet, a research database with 14 million pre-trained images. Taylan then explained how images are weighted for predictability in a neural network.
In the last part of his talk, Taylan explores and compares Tensor Flow, CoreML, Metal Performance Shaders and the Accelerate framework. If you’re looking for a exploration of machine learning and CoreML, this talk, along with Shuichi Tsutsumi’s, are definitely worth checking out.
Playing Nice with Design – Ellen Shapiro
As developers, we can gain a lot by deploying effective and practical communication with our design team. The first challenge, though, is establishing a common terminology. Designers, iOS developers and Android developers can use terms that have very different meanings in their respective ecosystems.
To start, create a table to map out the common terminologies — and while you’re at it, do the same for font styles and colors used in your design language. The team Ellen worked on created an open source app, True Colors, to see the colors used on various devices. She also likes Sourcery to generate code to store values then share those values in files added to projects.
Creating a custom framework is another way to create building blocks that can be used in your apps.
Ellen also takes a look at the benefits and pitfalls of using your own frameworks. Designers can start their work on iPads and Playground Books to create resource files that the developers can run under Swift Playgrounds on iOS.
In summary, start with a small goal and build up with common paradigms; text, fonts, labels, margins, etc. This talk was full of tips that can be used to add intelligence and tools to your team’s communication.
Bonus: Check out Chris Wagner’s tutorial on Sourcery to see how to create useful templates for your team.
iOS with Continuous Delivery – Cassie Shum
Cassie explains the nuts and bolts of continuous delivery while covering a number of tools and workflow enhancements in this detail-filled talk. The difference between continuous deployment and continuous delivery is that while deployment to production is optional under continuous deployment, continuous delivery can and does deploy to deploy to production.
Continuous delivery, she says, has a reduced risk, as fewer lines of code can be delivered more frequently while changes are fresher in the developer’s mind.
She went on to break down the tools by phases: Build, Deploy, Test, and Release. Best practices include using clean architectures and design patterns to avoid the bloat of the “massive view controller”. Tools such as SwiftLint, ocLint and static code analysis make for better and consistent code. Deployment tools like fastlane automate the pain points, and HockeyApp and TestFlight get builds onto devices for testing.
This talk is packed with workflow enhancements and tools. Definitely check this one out.
Bonus: Check out Lyndsey Scott’s tutorials on fastlane to learn how to automate the drudgery of app deployment.
Fun & Games
The conference was more than just talks. There was some fun & games too!
Stump 360 Episode IV: A New Hope – Hosted by Tom Harrington
The fourth annual “Stump 360” picked up where the WWDC favorite “Stump the Experts” left off. A rag-tag collection of “experts” took on the gathered audience in a game-show style battle of inane Apple trivia. The hosts presented questions to challenge the audience, who in turn wrote trivia questions on 3×5 index cards.
The event was 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 a vintage case for a PowerBook Duo battery — batteries not included. This session is a true highlight, and I look forward to many more years of Revenge of the Stump 360, or whatever they choose to call it.
Full disclosure: We did manage to stump some of the audience. However the score was close, as we “experts” were defeated by the audience members! :]
Game Dev Jam – Hosted by Ryan Polos
Every year I’ve attended 360iDev, 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. This year, there were two apps employing ARKit and one watchOS app. The first was a game where players could shoot down pesky Tie Fighters. A second game placed a shuffleboard on a nearby surface then allowed players to send virtual rocks down the board. The watch app enabled wearers to watch and bid on eBay auctions.
The game dev jam and accompanying board game night provided a great way to socialize and collaborate with other developers from around the world.
Bonus: Subscribers can check out our screencasts on ARKit to see how easy it is to get started with ARKit.
We also cover ARKit in iOS 11 By Tutorials, which is available on our store.
Other Interesting Talks
There are a few more other interesting thoughts that I thought you might like to hear about.
Xcode Debugging by Aijaz Ansari was an amazing talk. I was actually overwhelmed as I tried to both keep up with his talk and take notes. Aijaz demonstrated how we could explore objects with LLDB and the clever use of Python scripting. Through two demos, he explored what was captured in LLDB and used a Python script to see the contents of the values held in a object. In the second demo, he showed how to use his script jq to loop through a blob of JSON and extract the values. Using the techniques he presented, it was possible to observe the values, validate the data and extend the output into meaningful data. This talk is definitely worth a look.
In Threads Queues and Things to Come, Ben DiFrancesco covered the current state of GCD and NSOperation queues. He explained that every iOS device has multiple cores, and therefore, has the capacity to run concurrent operations. His talk also looks at what is most likely to come to Swift concurrency in the near future.
Jean MacDonald’s talk, The Art of Responding to Criticism, takes a look at dealing with customer feedback. She explains that it’s really easy to see criticism as a personal put down. She offers sage advice on reflecting on what is being said and how the customer feels, and then offers tools and advice to help us respond in a supportive and grateful way.
Do You Want a Dystopia? was the Day Two Keynote by Jay Freeman. Jay is the creator of Cydia, the app store for jailbroken devices. Like many others, he was once a user of liveJournal.com, which was eventually acquired by a Russian company. He also warned of the potential social dangers in Twitter, and noted he favors Mastodon, a distributed service for “toots” that is potentially safer due to its infrastructure. He’s puzzled by popular social networks that make it easy to create questionable accounts and content but take a long time to remove the content — if ever. Jay’s cautionary tales are interesting, because they make you think about where you put your sensitive personal information. Check it out.
Day Three Keynote – John Wilker
On Day Three, John Wilker gave a keynote about the conference and offered some insights. This is the 11th 360iDev conference in 9 years. Along with the organizers, he thanked the speakers, sponsors, volunteers, and one special angel investor. The conference started 10 years ago, right after the iPhone SDK was announced. The organizers try to have more code than “not code” talks, and average two code talks per session. You can use the insights you glean from code talks right away. The “not code” talks are evergreen concepts that you can use years from now.
The community of 360iDev extends to support Alt-Conf and App Camp For Girls. They also offer two free tickets to the various CocoaHeads around the world. Members of the military and students also benefit from half-price tickets. Grown from John’s own underwhelming experiences at various conferences, 360iDev aims to help others become who they really are. John notes there have been some declines in attendance, but the conference is set to run again in 2018 and 2019. Early bird tickets will be available soon, as well as a Patreon campaign where you buy your own tickets though patronage. I hope to see you all at 360iDev 2018!
Where to Go From Here?
I can’t recommend 360iDev highly enough! It’s a great experience for any developer, designer or anyone involved in app production.
The hosts, John Wilker, Nicole Wilker and Tom Ortega, make the conference feel like home, and the collective masses are super-friendly. No matter what obstacles come up, I feel I cannot afford to miss this conference. Every year I’ve attended I come away re-energized, enlightened, and ready to take on the next year’s work.
Check out Steve Lipton’s summary “The Best of 360iDev 2017” for another perspective on this great experience.
Ray’s said a number of times that 360iDev is one of his favorite iOS conferences — and I’d have to agree. If you’re looking for more hands-on tutorials, check out RWDevCon which runs April 5–7, 2018 in Washington D.C.; RWDevCon and 360iDev are both at the top of my own personal list of conferences.
Did you attend 360iDev this year? Will you attend next year? Will you step up and submit a talk of your own? Let us know in the forum discussion below!
Photo Credits: Fuad Kamal.