Hello, we are Taejeong Lee and Hyuk Heo, both iOS app developers at LINE. We had an opportunity to attend WWDC17 held at the San Jose Convention Center, from June 5th to June 9th. WWDC is an event for developers held by Apple every June in California. The event starts with the CEO’s keynote speech and is followed by 100 sessions and 200 labs in the course of 5 days, in which attendees can experience Apple’s latest software and technology. WWDC has been held in San Francisco in recent years, but this year, it was held in San Jose, which is regarded as the heart of Silicon Valley and is close to Apple Infinite Loop and Apple Park of Cupertino. This year, 5,300 developers from 75 countries attended the event. Well-serving its reputation as the icon of renovation, Apple did not fail to surprise the world with new ideas and technologies, and we are happy to share them with you.
After greeting us with an energetic “Good morning!”, Tim Cook introduced numerous new functionalities added to tvOS, watchOS, macOS and iOS in his keynote.
The main topics of WWDC17 were augmented reality (AR) and machine learning (ML). Using the ARKit, you can now easily implement AR on iOS devices. Core ML enables you to use machine learning to smarten your apps. Learning that AR and ML are available on the Apple framework, we got excited imagining all the possibilities of integrating the new features on our LINE services.
The new macOS is named ‘High Sierra’. macOS High Sierra uses APFS (Apple File System), which enables a new level of security and responsiveness. Moreover, as 4K video is getting more popular these days, macOS High Sierra has opted for HEVC (High Efficiency Video Coding) which compresses videos 40% more. Thanks to this new feature, sending pictures or videos will take less time. Also announced was Metal 2, a GPU performance booster.
iOS 11 brings in many new features particularly for iPad. iPad will come with the dock—yes, that dock from macOS—and drag and drop enabled for sharing data between apps. These two additions will strengthen multitasking ability, helping users to make more use of the big screen on iPad. Handwriting recognition and document scanning are also on board for Apple Pencil. Other new comers include lock screen, control center, new App Store design, live photo editing, upgraded Siri and Apple Pay.
This year’s keynote included an introduction of the new hardware lineup. ‘HomePod’, a home speaker scheduled for release in this December, caught my attention. HomePod is distinctive from other AI speakers in terms of high sound quality. Apple also introduced iMac Pro, 10.5-inch iPad Pro, and the External Graphics Development Kit for developing and testing AR and VR contents.
Platforms State of the Union
The opening keynote draws attention mostly from the general public. For developers, the second open session, ‘Platforms State of the Union’ had the charm. This session introduces all the topics to be delivered during WWDC at once, but excludes the ones the keynote had already covered. Attendees gain an insight to decide what sessions to attend based on this session.
This year’s topic was ‘Technology and Refinements’, with the focus on refining the achievements of their past R&D. Numerous new features of iOS, macOS, watchOS, tvOS surely fascinated software developers all around the world.
Following the decision made in October 2014 to terminate 32-bit app support on App Store, Apple has decided to discontinue its support for 32-bit apps on Mac App Store. Starting from January 2018, newly registered apps will be subject to this change and by June 2018, all apps, including the app updates, need to be 64-bit. High Sierra will be the last macOS to support 32-bit apps.
Swift Playgrounds 1.5 & Swift Playgrounds 2
Swift Playgrounds, Apple’s response to the demands for coding training, is coming in new versions. Swift Playground 1.5 enables controlling various devices including drones and comes with many other feature improvements. Swift Playgrounds 2, to be released in the coming fall, will support Swift 4 and come with more updated features.
Xcode had the most remarkable span and depth of updates in this year’s WWDC. The new version of Xcode, now made stronger and faster with the newer Source Editor, has also been introduced. The refactoring feature, which for a while was not fully functional, has come back with completely new updates.
Last year, Swift 3 was announced along with Swift 2.3. Likewise, Swift 4 was announced along with Swift 3.2, following the two-track strategy. The updates include faster string processing, resolution for the string size issue caused by emojis, and Codable for serialization.
Build time is a critical issue in large-scale projects and projects that use both Objective-C and Swift. LINE is one of them. The new Xcode has reduced build time by 40% faster. A faster indexer made the indexing time 35 times faster. The build system has been developed again from scratch; structural changes resulted in faster build time.
Quite a news was the integration of GitHub on Xcode. We immediately got our hands to try out this with LINE projects and went to the Labs with a handful of questions. Debugging analysis has been enhanced through View Debugger and Sanitizer. Xcode Server for CI (Continuous Integration) has been completely integrated to Xcode. The simulator now enables you to run multiple simulators and to easily control the simulator size.
Last but not least is wireless development. Thanks to this new feature, you can get rid of all your cables on your desk. You can deploy your app package to devices on wireless connection.
Drag and Drop
Drag and drop on iOS 11 opens a door to a whole lot different UX for users. At first, this feature appeared as simple as the GestureRecognizer, but in the end of the session, it was clear that many complex functionalities had been incorporated elegantly into the API. Drag and drop is available for iPhone apps as well; we figured that LINE will have to come up with ideas to make the best use of drag and drop on LINE’s services.
For UI, large title display navigation bar and dynamic types have been introduced, likely in order to adapt to larger and various screen sizes. Inevitably, LINE developers and designers will have to find ways to support both old and new versions of iOS.
At first, I thought of Files App as an iPad-only app. Come to think of it, using the Files App with LINE could be useful for our users in viewing Microsoft office files or PDF files.
What’s New iOS 11
A picture is worth a thousand words; the picture below shows you a list of new features on iOS 11. As you can see from below, the number of new features in iOS 11 does not outnumber that of the previous version. However, in a functional point of view, the updates in this version are powerful than ever.
As a messenger developer, iMessage is always of interest to me. The new iMessage comes with Apple Pay. This is a feature LINE can definitely take note of.
LINE started supporting Siri after WWDC16. Through this year’s update, Siri has become better at recognizing user’s domain and intents, thereby allowing LINE to access more information about users.
The camera app now reads QR codes and users can launch apps using universal links. LINE has been using QR codes for adding friends and has been supporting universal links. I think trying out the camera app is all we need at this stage.
Apple supports HEVC (High Efficiency Video Coding), also known as H.265, on the new OS. Image IO, Core Image, AVFoundation, PhotoKit uses HEIF (High Efficiency Image File Format) which uses HEVC, to replace JPEG. Since LINE deals with loads of images and videos, LINE will have to take a look into this new format standard.
The depth feature, supported on iPhone 7 Plus, is used for taking pictures in portrait mode and has been made into APIs. The API set includes AVCapture API, AVDepthData API, ImageIO API and Core Image API. You can save the picture taken into the HEIF format and also edit the picture afterwards. An example demo on custom filters looked very interesting and inspiring.
Vision Framework, based on Core ML (a machine-learning framework), detects a variety of targets including face, landmark, rectangles, texts, barcodes and objects.
CoreML – Metal for Machine Learning
Core ML sits on top of the low-level Accelerate framework and MPS (Metal Performance Shaders), and is used by the Vision Framework and NLP (Natural Language Processing). Core ML uses both CPU and GPU and supports external open source machine learning framework.
Metal, the GPU acceleration library, has been upgraded to Metal 2. Apple APIs also use Metal to use GPU. The performance has been strengthened by getting rid of the overhead through using GPU-driven rendering. Furthermore, refinements had been made, including synchronizing the API formats of iOS APIs and macOS APIs.
Apple stressed out using Metal 2 on VR development. Stream VR, Unreal Engine and Unity are supported. External GPU support will be provided and eGPU Developer Kit will be on sale. Apple products are best to buy right at their release, so we were very close to purchasing a kit each!
ARKit was introduced as another case of using Metal 2. Although not every device supports ARKit, ARKit provides convenient features such as visual-inertial odometry and scene understanding which made me wonder how we could integrate the features to give our users awesome experience.
Ask Us Anything: Labs
During the conference sessions, you come up with many questions, including the ones that popped up in the process of development. So did we. We knocked on Labs, a special venue provided by Apple where we could talk to Apple’s engineers in person. We took a list of questions we had made in advance to the event. These are some of the questions and responses:
- The new Xcode 9 integrated GitHub. However, we were not able to use custom ports when accessing via SSH address. Luckily we were able to get a hold of the engineer who presented the GitHub session. Apple was already aware of this issue, and will fix the issue in the future updates.
- LINE users have been reporting that they were frequently getting logged out from LINE on iOS 9.2.3 and later versions. We tracked down the issue and found out that LINE failed to read data from the iOS storage named UserDefaults. We made an inquiry to the Cocoa Lab at the conference, and were informed the issue had been confirmed as a bug and had been fixed completely on iOS 11.
- We asked when the UIApplicationDelegate.application(_:didFailToRegisterForRemoteNotificationsWithError:) method was called. The Apple engineer was aware of the API but has never seen the API called so far.
- We visited another Lab to inquire about the phased releases introduced on iTunes Connect. The Lab already had many visitors with the same inquiry, we ended up having a small group discussion. Questions were mainly about whether we could divide the schedule of the phased release in more segments and whether it was possible for a phased release to target a certain user group. Unfortunately neither of the two was now being supported, but the engineers in the Lab acknowledged having received many related requests and said they will reflect the comments to their future updates.
Labs were a great venue where we could talk to Apple engineers in-depth about various technologies. Questions that were difficult to be handled on the spot were delivered as Apple bug reports. We also made suggestions for new functionalities. Labs had designated time slots by topics, and sometimes the waiting was very long. If you have topics of your interest, make sure to head over there quickly.
Guide for developers attending WWDC
Everything Starts From the WWDC APP
If you have won a WWDC ticket, the first thing to do is to download the WWDC from App Store. With the WWDC app, you can download session timetables, maps, notices and event news. You can access the recordings of the sessions afterwards. Most of the session topics are not revealed until the end of the opening keynote, with the exception of the keynote itself. Guessing the sessions is another fun for WWDC.
First time being in San Jose—Checking in
WWDC started on Monday, but check in was open from Sunday, 9 a.m. On Monday, check in started from 7 a.m., so if you wish to attend the keynote from the front row, make sure you check in the day before.
You get three things during the check in; frantic welcome from the staff, a conference pass—which we had to wear on us all the time—and a age verification band. This year’s giveaways included a Levis denim jacket (good bye to those old jackets with the big prints of the conference year on them), a pin for your country’s flag, and six random pins. Pins were randomly given out throughout the event without notice. Collecting the pins was quite a fun.
Early bird gets the front seat—the Keynote Waits
We left the hotel at 4 a.m. to see the keynote speech from the front row. However, there already was a long queue. After a short security check of our belongings, we entered the venue as the staffs hoorayed and clapped behind us. As soon as people entered the event venue, a battle was on to get the best seats. We recommend you not to get too picky with seats, because you will probably end up at bad spots. it will be safer to settle for ‘okay’ seats as soon as possible.
Take a Break! – Resting Lounge and The Company Store
If you need to freshen up your tiresome body and soul, you can recover at the resting spots provided all over the venue. As the entire building of the San Jose Convention Center was rented, resting areas were very spacious. Comfortable couches and hub tables for quick downloading of beta versions were everywhere. During snack breaks, coffee, snacks and fruit were offered for quick fix.
The Company Store had been set up next to the resting areas. Apple goods—T-shirts, jackets and pens—were available for purchase. If you happen to be free in between sessions, do take a look around.
Attending WWDC was an amazing experience—meeting 5,000 other developers from all over the world and discussing and debating about development in Apple’s ecosystem for the whole week felt like a dream. Sharing the inspiration and enthusiasm with so many fellow developers was very inspiring. We cannot wait to see what will Apple bring at next year’s WWDC. LINE developers are now trying out various ideas with the Apple’s new features and sample code. We hope to provide new and interesting features to our users very soon.