Etermax at WWDC19

lucas serruya
etermax technology
Published in
8 min readAug 5, 2019

co-authored with Joan Carballés.

Another year, and another WWDC in which Apple announces the new groundbreaking technologies that will enhance the app development world. Etermax participated in this new edition and we are eager to tell you about all the new stuff Apple has been working on this past year.

McEnery Convention Center, San Jose, California, United States

The Conference

The WWDC is an excellent opportunity to meet new people, attend the labs and sessions, and above all, have fun. It’s a week packed with content in which you need to keep your head in the game to make the most of what Apple shares.

On the first day, there are 2 talks that present, in a summarized way, all the changes that have taken place and that will be further detailed during the week. Bear in mind that you can’t attend all sessions, as there are 4 at the same time each hour.

Labs

One of the greatest contributions of the WWDC are the labs. In these, there are Apple engineers that will help you with any issues you may have. It’s good to talk to your team beforehand and bring a list of problems to show them. Their willingness to help and their knowledge are outstanding.

Furthermore, as we assimilate the presented technologies during the WWDC, there is a space for questions, and the very same engineers that created such technologies can help you understand them.

Dark Mode

For those who like dark colors (who doesn’t?), one of the most expected releases is the Dark Mode for iOS 13, that can be integrated quickly and easily. You can also define a color or image asset used, in light or dark mode.

SwiftUI

This is a new, agile and practical framework for app development, in which the whole development is captured at code level, without .xibs or .storyboards. It allows a dynamic preview, where several visual changes that modify the code can be made. There are many tutorials, including Apple’s officials.

It was thought to work using an declarative syntax that allows to make the development so that the system knows what to do, but not how.

You can set a variable with @State, @ObjectBinding o @EnvironmentObject so that if it changes, the View that was using it changes its content in a dynamic way and without inconsistencies when doing the corresponding animation.

The preview is made based on debug data, that can specify how to complete a list, the device’s size or use the Dark Mode. And why not all of them at the same time?
It can also be done, as it supports multi-previews!

It also supports:

Bear in mind that this can only be applied for iOS 13. This limits the immediate use of the tool in existing or new projects for users that have previous iOS versions.

Sign-in with Apple

Sign in with apple is a new multiplatform login method (mobile and web), in which the user can log in to our app using their Apple ID. This means we don’t have to worry about anything but the SDK integration, and we can get a very simple login method with the security guaranteed by Apple. Moreover, Apple protects the user’s privacy: if an email address is requested, Apple will give the user the possibility to provide one generated automatically by them, thus avoiding that the user uses the real one. In this way, we will have a valid email and the user’s information will be safely protected.

According to the guidelines, if we offer other login methods provided by third parties, Sign In with Apple will be mandatory by the end of 2019.

You can find a tutorial on how it’s implemented here.

Swift 5.1

Changes were made that can speed up the development and keep the code simpler.

Let’s start by talking about Property Wrappers. This is a new feature that allows the property values to adjust automatically with personalized implementations in the set and get. It’s a type of interface between the property value and the storage type. SwiftUI uses this to create ‘bindable properties’.

Combine offers a whole new world to explore, even though users that have already used RxSwift (reactive programming) may not agree. It is a new way of building the code, which has to be thought as a group of data flow (streams) and has to make the system react in time, which will be known as the Publisher and the Subscriber. Even though for now it doesn’t offer all the tools that exist in RxSwift, we hope it continues to grow.

There are 2 talks about this, from the WWDC: ‘Introducing combine’ to get familiar with the topic and ‘Combine in practice’ to go a bit deeper.

Other changes:

  • ListFormatter — it allows to apply a change in format to a list in an easier way.
  • Implicit Return — there is no need to put ‘return’ before the return value in a function anymore.
  • The ‘difference’ feature between 2 Ordered Collection.
  • Time reduction when using Types Interpolation.
  • @dynamicMemberLookup — it enables to delegate responsibility. For example access the feature ‘name’ from the Player class, when ‘name’ belongs to the User class.

iOS Changes

  • The user can now choose the specific language for each app by going to settings. It doesn’t require any changes from the devs perspective.
  • A new type of permission is introduced for the GPS: ‘allow just once’. It enables the user to grant the app, , the necessary permissions to access their localization.
  • Safari now allows to choose the destination folder for downloads, including folders from a USB device.
  • iOS 13 allows the creation of multiple interface instances on the same app on iPad, which can be managed from the App Switcher.
  • Safari’s webPages share now allows to download the page as a pdf file.
  • ‘Low data mode’ is a new feature that allows the user to limit the internet’s use access. The user can turn on this mode whenever their internet connection is bad, or in situations where there is no available broadband, like on a plane where you have to pay for the wifi.
  • The download limit for apps without a wifi connection increased to 200mb.
  • With the arrival of watchOS 6, the apps are now self-sufficient; you can download the Apple Watch directly, without the need of an iPhone.

SF Symbols

SF Symbols provides over 1500 icons and symbols that are very easy to use. It also has a great number of size settings with 3 possible options (Small, Medium and Large), and 9 weight settings that go from Ultralight to Black, and that correspond with the 9 San Francisco System Font weights.

Apple gives us SF Symbols APP to see all the created symbols easily, and, what is more, to create new symbols in vector format. For this, we must create a new symbol that has a similar design to the one we want. Then, we will get a template that can be edited with any vector editor like Sketch or Ilustrator, and thus we can create our own SF Symbols

Contextual Menus

Contextual menus are menus (iOS 13+) with options that have to do with the context that is being shown. For example, if it’s a picture, the options shown will be copy, share, mark as favorite or delete such picture. The menu will appear with touch and hold gesture or 3D Touch. We recommend to follow the Apple guidelines on how a good context menu should be.

Mac Compatibility

Something really simple and surprising at the same time, is the checkbox they’ve added to the project’s setting, which allows an existing project supported by iOS to be supported in macOS as well.

This is a huge advantage for devs to create multi platform apps, for iOS and macOS, using the same code.

Even though using the same code seems fabulous, the mobile and desktop experiences are different, and it has to be considered. Apple offers a guide to add macOS support.

Xcode

Like every year, Xcode 11 comes with multiple changes that make the use of this IDE more and more practical.

  • Now we can create as many editors as we want, and move every window around. Every created editor has its own preview and additional views.
  • A very useful minimap has been added, which allows us to see our class structure in a graphic way and find what we are looking for faster.
  • High temperature conditions and slow network can be simulated to debug our app.
  • A new metrics tab has been added to the Organizer, that shows how efficiently your app runs on customer devices.
  • Source control now supports cherry pick and stash.
  • Swift Package Manager is now integrated to the Xcode and is available for iOS projects.

Testing

A very interesting talk was given about this subject. In it, some changes were announced regarding the xcodebuild test running, to facilitate the workflow creation for continuous integration (CI) and enhancing the result bundles.

The highlights of such talk were the Test Plans, with a simple integration and that allows the creation of diverse settings to run the tests in different languages and regions, and run them simultaneously, in random order or with personalized parameters.

Conclusion

The WWDC is a unique experience for those of us who spend most part of our careers as developers in an environment closely linked to Apple, and we strongly recommend to live it at least once. Filled with content and knowledge acquired in the WWDC, we are excited and anxious to see what will Apple bring next year. This year has been packed with releases, and this covers only a small part of everything we’ve seen and learnt. There is so much ahead! We hope this helps to convey a general idea of the big changes, and thus encourage you to dig deeply in the areas you need or want to.

--

--