The day had a cold start, I had to quickly run to the station or else I would have missed my train to the Moscone Center. In my previous blog, I had shared updates regarding MAC OSX 10, iOS 9, XCode 7, Apple Watch, Core Foundation changes, Swift 2, Testing and Cocoa. Apple had executed both the days of the conference on schedule, no errors, smooth planning.
In this blog, I would mainly cover the sessions which took place on day 3 and 4 of the Apple WWDC, 2015. Topics of these sessions include – XCode, Swift, App Analytics, iTunes Connect, Rich Playground, iPad and iOS 9 apps.
Here are the highlights of the sessions- Day 3 and 4 of WWDC 2015:
- Authoring Rich Playground – To create rich Playground content along with its maintenance and management, the developers of XCode provided a demo of:
- Auxiliary source files – Are swift source classes which allow the developer to:
- In place view – Developers can view the created code and see how it looks right into the code inline
- Create separate source files as that of classes in an iOS project, keeps it modular and easy to reuse or include it in an iOS project easily
- Keep the Playground file limited to what needs to be displayed and the core business logic
- Ready for sharing – To make the playground look rich, it offers:
- Playground Markup- usual comments that start with /*: or //:
- Provides use of * in the comment for varied formatting like:
- *Hi* would look like Hi
- **Hi** would look like Hi
- * Hi would show the line in a bullet list
- Pages
- Pages are playground pages to create different views
- For example, if the playground you are creating is related to showing different routing algorithms you could create: Source files for Area/City, locations/nodes, paths with their display logic
- A plist resource to hold all locations and path data that will be used by the playground to render
- You can now create different pages each utilizing the same sources and resources, but implementing a unique routing algorithm for traveling through the locations
- More on iTunes:
- A new refreshed UI makes it way for iTunes, tab changes include:
- App store – For managing applications
- Features – Feature such as in app purchase can be managed here
- Test Flight – Manage internal and external testing
- Activity – Gives access to history and builds
- New capabilities to do Manual release of apps
Once Apple has reviewed the app, before releasing it on iStore, the developer can circulate the app internally to perform additional testing by using Test Flight before making it public. The developer can offer the app at a special pricing for selected period of time. All the PDF documents pertaining to the app are replaced with web pages which can be viewed without authorization.
Test flight updates include:
Using test flight does not require a provisioning profile. The developer can invite user to test the application using either their Dev ID or through email invite
Internal and External testing includes:- Internal builds are readily available to internal testers as soon as the developer uploads, and for external testers they can select the version they wish to test
- Internal testers should be added to the developer’s iTunesConnect team which can be limited to 25 members per application to test
- External testing can include 2000 members, to make it happen, the developer only requires their email address. The same email address that they use on their iPhone device and need not be the one used for apple account.
- Accounts and users
- The user can be associated with different accounts for accessing iTunes
- New roles for iTunes includes:
- App Manager – create users and assign user roles
- Developers – upload binaries and view crashes
- Marketers – change app meta data
- The user can be associated with different accounts for accessing iTunes
- A new refreshed UI makes it way for iTunes, tab changes include:
- Yielding maximum returns from App Analytics – This session focused on how iTunesConnect helps you to identify how your application is performing. iTunesConnect has introduced better analytics data for the number of application views, installs and their retainability from user.
Apple has introduced to campaigns in iTunesConnect which is just a name and ID, that is embedded into the app store URL of the application. This helps to identify the campaigns which are working for you and which are not, by getting you the number of views on your app, campaign wise. - Quick Prototyping of your Idea – A very good model especially for startups, I would say. This session provided a quick prototyping model to check if an idea is really worth investing into from coding perspective, but still gives a good look and feel for users to give feedback. This model basically has three steps: Mock application show to users, get feedback and loop.First create pictures for your app and the hardware that your app will interact with and show what your application can do. Mock it using iPhone and iPad devices with minimal coding only for UI experience and interaction. For example, the Apple watch was mocked in its prototype stage on an iPhone showing screen of watch and the digital crown with gestures doing the hardware interaction. The communication initially might not be real. Test it with some known set of data on both the entities (application and watch hardware faked on iPhone/iPad). Later selection data can be sent using P2P or sockets without any requirement of server and very less coding. And that’s how a prototype can be quickly made to get user feedback before actually implementing it.
- Optimizing apps for multitasking in iPad and iOS 9 – On day 3, this session attracted huge audience participation as vital updates for iOS 9 were released.
- Spring board updates include:
- CPU – Use of CPU for each interaction if it’s less than 60 fps. But, in multitasking if each app uses all 60 fps then the user experience might be degraded.
- Memory – While multiple applications run together and consume the memory, the OS henceforth will terminate the apps which are degrading its performance, even a foreground one.
- Optimization tips include:
- Memory Management:
- Leaks – Remove all leaks or use Swift instead
- Retain cycles – The developer needs to ensure there is no unbounded memory usage for retain cycles
- Working set – only keep data in memory that is required right now
- NSCache – Use NSCache to store data that could be recreated easily. They are automatically deleted when a memory warning comes in.
- NSPurgeable Data – Extend this class to inform OS if it can delete the data or not before informing
- For managing CPU apps:
- Execute less code in main thread
- Make more use of GCD. Even while the user has interacted and data needs to be collected from file, use GCD and inform OS to give it higher priority.
- Spring board updates include:
- More on XCode – I have covered XCode in my previous blog as well. However, Apple rolled out updates pertaining to XCode Server in this session. The updates include:
- Continuous integration with XCode- Continuous integration makes sure that the code always in great health with automated builds and tests running.
- What’s New in XCode for continuous integration?
- Easy integration with Repository. New tab to show details
- More control to user for Repository check-in checkout details
- What’s New in XCode server?
- Faster log display
- A separate section for new issues found in current build
- The server can do UI testing on different devices simultaneously
- Support for On Demand Resources
- Support for Code Coverage
- Simultaneously run and test on different devices and check code coverage on multiple devices
- Reports provide class and method level coverage and history of code coverage
- Advance Features of XCode server include:
- Triggers
- Custom actions for email notification or scripts with the language of your choice
- Use of Open standards
- Communication is well secured over HTTPS
- REST is used even for resources and actions
- Data is exchanged using JSON
I would recommend everybody to go through these sessions for the example they have explained with graphical visualization of how different scenarios affect CPU, Memory and I/O which will further help you to make logical decisions that are more performant. Apple also shared some guidelines on managing UI effectively; it broadly talked about Auto Layout issues and how certain tools can enhance the UI.
Summing up, it was an exhilarating experience to witness Tim Cook and other apple associates rolling out updates after updates. This session not only cleared the curiosity of Apple designers but also showcased how Apple is pacing ahead in the technology sector.
Validate your Apple Watch App idea from Harbinger Experts – Avail 2 Hours Free Consultation Today!
Write to us at: contact@harbingergroup.com