What is a JSON feed? Learn more

JSON Feed Viewer

Browse through the showcased feeds, or enter a feed URL below.

Now supporting RSS and Atom feeds thanks to Andrew Chilton's feed2json.org service

CURRENT FEED

Weekly Cocoa

Weekly updated newsletter about iOS, Swift, Objective-C, CocoaTouch, and other Apple connected development technologies.

A feed by PGS Software iOS Team

JSON


3rd week of 2018

Permalink - Posted on 2018-01-16 19:00

This week, we have tons of new and interesting links from a variety of sources. If OWASP is not telling you anything, it’s worth reading and checking if your application meets security requirements. Or if you want to play with other languages, you can check Pascal interpreter written in Swift.

News

Announcing Realm Cloud: Realm Platform as a Service Beta

Realm goes into the cloud. From now on, you can build native and offline mobile applications without worrying about server infrastructure.

Why You Need to Keep Your Mobile DevOps In-House in 2018

Which CI/CD infrastructure should we use? In-house or in a cloud? There is no simple answer, but Shashikant Jagtap has prepared a comparison of those two variants.

Q&A: Automation Guild Conference XCUITest Session

Summary of the Automation Guild 2018 conference on which Shashikant Jagtap was a speaker and had a chance to answer a few questions.

Pascal interpreter written in Swift

You may not be the first in line to write in Pascal just because of this interpreter. We totally get your point. It’s just that the great amount of work put into this project and learning material that it has created is too good not to share.




Development

A Brief Overview of Swift Compiler

Under the hood of Swift compiler. From source code to compiled binary ready to execute. It is not an easy process which requires a lot of different steps and tools to use.

Mocking in Swift

Mocking is one of the available methods to test the behaviour of our code. This time, John Sundell describes different approaches of mocking and when we don’t need to use them.

OWASP Mobile AppSec Verification Standard v1.0

Have you ever wondered how to check the security of a mobile application? Follow this guide and create safe apps!

Useful Optional Extensions

Cool stuff alert! 🚨 Benedikt got us set of not only useful but also elegant extensions for Optionals. You’ll regret you didn’t use them before, just like us!

Algebraic Data Type in Swift

Such a fine subject, I wish I could see the talk. 😍 Really innovative and broadening horizons. Anyone knows if a video will be available on the Internet?




Design

Your dialogs are too long

A hundred percent agreement here. Protect your users’ focus and patience - they’ll be thankful. One more thing, I would consider an option to undo deletion rather than alert… because YES, I’M SURE. 😜




Tools

5 Tools for Uploading iOS apps to iTunes Connect

Five ways to upload your application to iTunes. Choose your favourite graphical and command line application.

iOSSnapshotTestCase

Uber brings back to life UIView and CALayer snapshots! 📸 Did you miss it?

Bridgecraft

Are there any Sourcery fans on board? I’d expect quite a few. They’ll be happy to hear that mixed code bases will now be able to benefit from its goodness, as yet another obstacle is being removed for us.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


2nd week of 2018

Permalink - Posted on 2018-01-09 19:00

Probably a lot of us were following news about Meltdown and Spectre attacks. Thankfully, it doesn’t stop you from creating some outstanding articles, projects and updates.

News

About speculative execution vulnerabilities in ARM-based and Intel CPUs

Apple responds to Meltdown and Spectre. It’s time to finally update to macOS High Sierra and iOS 11.2.2.

Swift Playground Online

Brought to you by Marcin Krzyżanowski. Impressive!

Multiplayer AR — why it’s quite hard

This situation feels familiar, you’re asked for some feature that you know is possible to implement, but then you sometimes realize it belongs to a proof of concept rather than a customer-ready product. Notably eye-opening article about obstacles existing between one of the most desired functionalities for AR applications and an actual app implementing it.

Ending This Week in Swift

This Week in Swift, which was created by Natasha The Robot, is now closed 🙁.

Ending the Swift Weekly Brief

Another big newsletter Swift Weekly Brief operated by Jesse Squires was closed “at least for a while”. Here’s hoping that they will be back 🙂.




Development

Conditional Conformance in the Standard Library

Seemingly trivial yet long-awaited feature, conditional conformance is finally here! 🎉

Design Patterns in Swift: Observer

“Observer”, one of many design pattern used by Apple and which every iOS Developer should know. Dejan Agostini has presented two variants of the Observer pattern.

First class functions in Swift

Some languages can use functions like any other objects. Swift is one of these languages. John Sundell, once again, shows us what amazing things could be done with functions.

What Are Annotations?

PDF format documentation is tremendously long, we should be aware of that since the WWDC 2017 worked so hard to convince us. (If you have missed it, I highly recommend it - Session 241.) Why not get to know a little piece of it thanks to PSPDFKit team? 😉




Business

On loyalty to your employer

This guy specializes in recruitment of employees, let’s hear what he has to say about getting engaged and devoting yourself.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


1st week of 2018

Permalink - Posted on 2018-01-02 19:00

The year 2017 is over. Welcome in 2018 🎉. Last year was very successful for iOS / Swift developers. The community created hundreds of interesting materials, blog posts and presentations. 2018 is in front of us, so stay tuned for amazing materials which we’ll put here for you.

News

The buddybuild team is now part of Apple!

Looks like buddybuild has been bought by Apple. Will we have working and stable continuous integration and continuous deployment service finally? As usual for Apple, no free plans and no Android support 🧐.

iPhone X home button

Very impressive reverse engineering of the iPhone X home button by Sash Zats. He shows step by step how he dives into Apple private frameworks to make snippets ready to paste into your project 😳. Extraordinary 😎.

Install Xcode from App Store or Developer Portal?

Peter Witham explains the difference between Xcode from the App Store and from the Developer Portal, and which one to use.

Top Security & Crypto Fails of 2017

End of year is a time for sum-ups. Tech geeks chose a few most interesting security failures of 2017. And by “a few” I mean “numerous”, it’s a pretty big hall of shame. 😳 Which one is your favourite?

Wrapping up 2017 on Swift by Sundell

John Sundell started his adventure with blog posting almost a year ago. He summarized his experience and made plans for 2018 🎊

10 Things I Rocked in 2017: A Year End Review of XCBlog

Shashikant Jagtap, an expert in iOS Infrastructure, Build Automation, Continuous Integration Services, and many more. He has also summarized his achievements in past year. We hope that 2018 will be as good as 2017, if not better. 🎉.




Development

A hack for fixed-size arrays in Swift

When performance matters, we have to dive deeper into low-level API. Swift doesn’t support fixed-size arrays like vectors, but Ole Begemann found a way to create them.

Swift imports fixed-size C arrays as tuples

The second article from Ole Begemann about fixed-size arrays. This time, he presents how to use such data types from C in Swift code.

SingleValueCodable

That’s some mighty awesome way to use Swift’s protocols and extend Codable abilities to work with RawRepresentable types.

Killing “tmp” with Defer

A short reminder that defer has legit use cases.




Video

Zero Knowledge Architectures for Mobile Applications

Let us hear your little applause for @vixentael for sharing this great talk with us. If you didn’t have the opportunity to hear it live, we highly recommend this video, slides and couple words.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


52nd week of 2017

Permalink - Posted on 2017-12-26 19:00

It is just after holidays. Most developers took days off, but there are a few persons who find some time to write some interesting stuff.

News

Mike Ash + Apple = Swift

Mike Ash is joining Apple in January. Wish him good luck and have fun. It’s great to know that Swift will be in good hands.

Apple Updates App Store Guidelines to Relax Restrictive Rules on Template Apps

Apple has relaxed its App Store Review guidelines rules on “Template Apps” and changed a few other points.




Development

First Impressions of Fastlane Swift for iOS

In the previous post, we wrote about writing Fastfile using Swift. Now is the time for a first impression. It is still too early to say whether we should switch to Swift version, but there is a light at the end of the tunnel.

A view construction syntax

Mind blowing article by Matt Gallagher. Alternate view syntax initialization for reactive programming. Stay tuned for CwlViews framework, which should be available soon.

Separation of concerns using protocols in Swift

Walk-through of removing dependencies and creating better separations between modules. Nice example by John Sundell.

Building a Simple ARKit Demo with SceneKit in Swift 4 and Xcode 9

If you want to play with ARKit but you don’t know how to start, now you can try it with this simple step by step tutorial.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


51st week of 2017

Permalink - Posted on 2017-12-19 19:00

We’re closer to the year 2018, but before 2017 ends and we start celebrating 🎉, we still have some delightful links to share with you.

News

Write Fastfile using Swift

Great news. Now you don’t have to use Ruby to write your lanes in Fastlane 🚀. One language to rule them all 💍.




Development

Xcode Server: Enabling Code Diagnostic Tools

Spotting issues with our code is not trivial and using good tools could help us a lot. But automatic issues lookup with Xcode Server’s sanitizers is even better.

Friday Q&A 2017-12-08: Type Erasure in Swift

Next Friday and next Q&A by Mike Ash. This time Mike takes type erasure on the board and gives a very nice explanation with even better examples.

Xcode Server + Ansible: Scalable and Programmable iOS CI/CD Infrastructure

This time, Shashikant Jagtap achieved the impossible, or at least something really difficult. Manage Xcode Servers at scale by using Ansible 🎉.

Different flavors of dependency injection in Swift

Overview of different types of dependency injection. Pros and cons, case studies, and examples of initializer-based, property-based, or parameter-based.

NSMeasurement - Foundation’s Powerful API to Measure #AllTheThings

Some of the strongest APIs available on the Apple platforms are formatters and their support of localizations. With iOS 10, Measurements API was introduced, which solves problems with unit conversions. No more manual conversions of miles to kilometres.

Rich iOS notifications with custom input interface

Jimmy and his adventure with rich iOS notifications. A beautiful story about implementing engaging and interactive notifications, with custom input and media player actions.

How to import a C library in Swift using the Swift Package Manager

Swift + C = ❤️. Swift has a great compatibility with C code and libraries. Ole Begemann presented a part of the Advanced Swift book. With only a few steps you can integrate existing C library into your Swift project 😎.




Tools

CollectionKit

UICollectionView killer framework. Built on top of UIScrollView, fully customizable, with high performance and the most important … backward compatible with iOS 8.0 🚀.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


50th week of 2017

Permalink - Posted on 2017-12-12 19:00

This week, Apple surprised us with lots of news like application pre-orders or best applications and games of 2017. But developers didn’t sit idly. UI testing, Xcode Server with Slack, useful patterns with associated types and much, much more articles are waiting for you. So get hot ☕️ before you get on with reading.

News

Learning with Privacy at Scale

Apple takes care of user privacy. In the newest versions of their operating systems, they go one step further by collecting insights without sacrificing user privacy. Read how they managed to do it.

CVDisplayLink Doesn’t Link To Your Display

Rendering frame in time is crucial to have smooth, 60 frames per seconds, experience. Some findings regarding CVDisplayLink on macOS.

Apple secretly slows down iPhones with older batteries

If you noticed that your iPhone is working slower than when you bought it, then you can be right.

Best of 2017

The best apps and games on the App Store selected by editors.

Apple confirms Shazam acquisition

Everyone knows Shazam. And Apple just bought it. Wonder what will happen with the Android version of the app. Will it be integrated into Apple Music app only? Quite possible. Is it only about music? What do you think?

Offer Introductory Pricing for Your Subscriptions & Offering Your Apps for Pre-Order

More news directly from the Apple. Discounted price or a free trial for a limited time at the beginning of a subscription and applications pre-order.




Development

Xcode Server + Slack = Rockstar Combo for iOS CI/CD

Xcode Server doesn’t provide any third party integrations but, it doesn’t mean it cannot be integrated with any service like Slack. Read and do it by yourself.

UI testing analytics code in Swift

In the previous blog post John Sundell shows how to build analytics system in Swift. This time, he presents how to test it using UI testing.

Patterns for Working With Associated Types

Associated types, a powerful yet hard to master feature of Swift’s generic system. This extensive article makes good attempt to sort things out and cover typical day to day use cases.

How to Mock Standalone Functions …Without Changing the Call Sites

Some mighty test strategies out here! These allow you to mock even standalone functions from the standard library. 😎 One reason less not to test legacy codebase or any other codebase.

Enums And Protocols & Misusing Subclassing

Did you ever wonder when to use enums, protocols or when to use subclassing? Soroush Khanlou prepared excellent examples when one is better than the other.

Custom Layers in Core ML

Machine learning and artificial intelligence is a substantial technology for Apple. Every version of the iOS brings new features to Core ML. This time, Apple engineers added custom layers to the framework.




Tools

Amber

Amber is flexible architecture based on Elm & Flux ideas and developed specifically for iOS.

Weavy

Weavy is a navigation framework for iOS applications based on a weaving pattern.




Video

Playgrounds

Less about professional software developers, more about teaching. Why do we need it, how hard it is and where Apple Playgrounds are in all of this. Coding can be fun! But it requires a lot more knowledge of reality surrounding us than of syntax

Combining Swift/Kotlin with C/C++

Writing multiplatform application is hard, if not downright impossible. Michał Kowalczyk from TomTom presented how he’s using C++ to share logic across Java/Kotlin and Swift projects. Write once, use everywhere.




Others

Xcode + the iOS simulator together in full screen mode

Try by yourself and increase your focus on tasks.

An experimental feature that may improve Swift build times

New in the Xcode 9.2, an experimental feature which could improve build time of Swift projects: BuildSystemScheduleInherentlyParallelCommandsExclusively. Remember, set it to NO to try it.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


49th week of 2017

Permalink - Posted on 2017-12-05 19:00

The winter has come ☃️, at least in some places. To warm you up, we have prepared some hot news while you drink some ☕️.

News

Apple releases iOS 11.2 with date crashing fix, Apple Pay Cash included, other changes

Apple has published the new version of the iOS system - 11.2. It includes a fix to December 2 issue, which could lead to random reboots.

iOS 11 Horror Story: The Rise and Fall of iOS Security

Another security issue with Apple products. Oleg Afonin describes what could be done when someone will find your passcode.

Month 13 Is Out Of Bounds

It is not a good time for Apple engineers. Every week we can read about new issues and problems. A long time ago Google has removed December from Android. This year Apple has added a new month. What would you name it?




Development

Building an enum-based analytics system in Swift

Every application needs analytics to get a better understanding of how users interact with it. John Sundell shows how to make testable abstraction layer to any analytics library.

Xcode Server: Top 10 Limitations of XCS for iOS Continuous Delivery

Apple is working on their Continuous Integration / Continuous Delivery system since a few years. It’s time to summarize the Xcode Server’s advantages and limitations.

Xcode Server: iOS Over The Air (OTA) Installation Tips

Useful tips and tricks for Xcode Server.

Apple’s new Utility library will power up command-line apps

A new library from Apple delivers some useful data structures and helpers for CLI apps. It’s described as unstable API, so use it at your own risk.;)

Secure Coding With Concurrency in Swift 4

Swift was designed for safety, but it definitely has room to grow if we’re considering concurrency. Check how to guard your Swift code against runtime vulnerabilities, such as race conditions.

StoreKit is Broken

If you’ve ever created an application with in-app purchase, you probably struggled with Apple’s API design. If you haven’t use StoreKit yet, be prepared, designing user experience against it will be a pain.




Design

30 Auto Layout Best Practices

After all these years, Auto Layout can still be finicky. In this article, Paul Solt provides 30 practices that will help you avoid most common quirks and will allow you to work faster and more efficiently.




Tools

Flawless App 2.0

A great tool from the Flawless team has its first major update with loads of new features. Its unique integration with the iOS Simulator makes comparing design mock-ups with actual implementation a breeze. As before, we are convinced to upvote.




Others

Great news: starting with Xcode 9…

Sounds like yay! to me. 🎉




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


48th week of 2017

Permalink - Posted on 2017-11-28 19:00

Enjoy a variety of topics for long December’s evenings. We’ve picked a load of articles and videos for you, CoreML, ARKit, bits of business and design.

A lot is going on this week, temperatures drop while the atmosphere at Apple gets hot. 🔥❄️

News

iTunes Connect Holiday Schedule

Important: Prepare your app for holidays. “New apps and app updates will not be accepted December 23 to 27 (Pacific Time)”. Winter Is Coming. ⛄️🏂

HUGE security issue at MacOS High Sierra

Apple, why?

New Downloads

Apple has just released new beta versions of their software: macOS 10.13.2 beta 5, iOS 11.2 beta 5, tvOS 11.2 beta 5.

Hour of Code

This year Apple will celebrate Computer Science Education Week from December 4 to 10 an initiative by Computer Science Education Week and Code.org.

Development

Training on the device

Developers’ dream or the real thing? How much can we do already and where barriers are for now?

Building automatic OptionSet entries

Swift is definitely lacking in option sets department.

Getting a room plan with ARKit (The case where size matters)

How much of accuracy we’ve gained with ARKit when compared old school built-in sensors? Join this fun, scientific journey.




Tools

Sprinter

If you feel Swift’s String formatting support is lacking, it’s a great library for you.




Design

Good design doesn’t make people happy.

This article will make you answer one question: are you designing to match client’s expectations or users’ expectations?




Business

Coders Should Fear What Happened To Writers

This controversial article warns all of us that IT is not a land of milk and honey. At least, it’s not guaranteed to be. Automation, rapidly developing technology means constant learning. For all the geeks here it sounds fun, but there is another side of this medal, check it out for yourself.




Video

Building iOS Apps at Scale

Most of us work with a team on daily bases. Whatever your codebase is growing o large already, Yusei Nishiyama shows us how to perform, deliver and don’t go crazy.

Exploring Swift’s numeric protocols &Compiler Sanitizers for Fun and Profit

Two outstanding presentations from a whole lot of worthy presentations from iOS Conf SG 2017. Go and grab anything of your interest.




Others

Three to four cups of coffee a day linked to longer life

Cheers! ☕️

Battery Life Hacks: All You Need To Know

Are you one of those irritated with your iPhone battery life? Or are you starting to feel like a dog on a lightning leash? No worries, Niklas has detailed recipe for how you can help yourself.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


47th week of 2017

Permalink - Posted on 2017-11-21 19:00

Bits of code, helpful tools, business insights, but more importantly, a bunch of top-tier development articles. Be it continuing architecture discussion, making use of child controllers or handling multiple configurations.

Development

Device-only code: A polite request for help

All hands on board! If you ever had to code something device dependent, you’ll definitely appreciate this proposal.

The Presentation Model

MVC, MVVM, MVP, MVMVC 😵 Stop by and check where all of them came from with Ben Sandofsky, whose voice of reason should pull us to the understanding of these terms.

iOS Background Transfer

A painful but enlightening story to remind us that, for the system, our apps are secondary in comparison to user’s needs.

Which commands do I use in my terminal all day?

If you’re missing out on any of these commands, Durul Dalkanat got you covered. Maybe except rbenv local.

Using child view controllers as plugins in Swift

Modularize view controllers and how to avoid BaseViewController in your application.

Managing different environments and configurations for iOS Projects

Feeling dizzy from a number of environments of your app’s backend? High-five! ✋ Fortunately, there is a native solution to help us keep codebase independent.

An On-device Deep Neural Network for Face Detection

History of the face detection on the iOS, from Core Image framework to Vision Framework.

Stop Xcode from constantly rebuilding your project because of @IBDesignable

Believe it or not, you’re two clicks away from stopping the constant project rebuild!




Tools

Changeable

Utilize powers of Swift 4 key paths and observe state changes of objects in your codebase!

xclint

Validate your Xcode Project for duplicates, inconsistencies, missing files and more.

Mint

A package manager that installs and runs Swift command line tool packages.




Business

Millennials Will Work Hard, Just Not for Your Crappy Job

For anyone who is tired of appreciating the work they were graciously given. Most probably, you’re not the one who needs to adjust.

5 Signs You Are Not a True Leader After All

Are you a leader or manager?




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


46th week of 2017

Permalink - Posted on 2017-11-14 19:00

This week our Others and Code sections are especially rich and interesting. But they still cannot compare to Development, full of the best articles for all of Swift and iOS devs out there!

In case you’ve missed this occasion to smile, we also can’t wait for the top-notch iPhone. 🤣

Development

View-state driven applications

View-state driven approach won over many hearts of iOS developers, including ours. This time Matt Gallagher dives into more details with a full-blown article!

Avoiding force unwrapping in Swift unit tests

We definitely should care about unit testing, a part of it is taking care of the test’s code quality. guard, force unwrapping, optionals and custom solutions. Check which one is the best for John Sundell and the reason why.

URL parser in functional style. Part 1. & Part 2.

Quite an extensive article showing implementation process of full-blown functional URL parser in Swift.

Friday Q&A 2017-11-10: Observing the A11’s Heterogenous Cores

iPhone X has new mobile A11 CPU with two high-performance cores and four high-efficiency cores. iOS can use all six cores simultaneously. Some thoughts and performance measurements by Mike Ash.

Faster Swift Builds with the New Xcode Build System

Totally didn’t forget about it… Let’s stop pretending and give a big thumbs up to Dan for the reminder. 🌟




Code

RIBs Cross-platform mobile architecture

RIBs is a cross-platform architecture framework used for many mobile apps at Uber. The name RIBs is short of Router, Interactor and Builder, which are core components of this architecture. This framework is designed for mobile apps with a large number of engineers and nested states.

AnimojiStudio

What do we want? Animoji! How much? More! When? Now! 🦊

Use conditional conformances to implement Equatable for Optional, Array and Dictionary

🎉 There is nothing more to add.




Design

Knock Design Into Shape. Psychology of Shapes.

My favourite is the notch shape. 🤫 But others may prefer square. Find out what does it mean in user interface terms.




Video

Spontaneous Swift Sudoku Solving

Sudoku solver in Swift without complex algorithms, live, in Xcode. 😱 Perfect presentation of Soroush’s train of thought for optimistic cases all the way to brute forcing more troublesome ones.

Error Handling Made Easy

Eleni & Kostas provide us with a painless way to deal with errors that we may not believe will happen but in reality, hurt our users’ trust.




Others

Productivity

The long-awaited article that unveils some secrets behind John’s unbelievable productivity.

How Bkav tricked iPhone X’s Face ID with a mask

It happened, iPhone X was unlocked using a face mask. 🤭

Did you notice the lock doesn’t animate while unlocking using the mask? 🧐

Fixing Mail Plugins for High Sierra

Good news for users of macOS’s Mail app!




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


45th week of 2017

Permalink - Posted on 2017-11-07 19:00

After weeks of absorbing news, fresh APIs and features, the time came to sum up and consolidate. We’re always glad to improve, there’s always a better way to use our knowledge. You’re welcome to join us! 😉

News

New App Store Marketing Guidelines and Resources

With iPhone X, Apple updates App Store Marketing Guidelines, adds new badges and images for your favourite 🍎 device.




Development

Dependency injection using factories in Swift

Step by step introduction to factories as a strategy of cleaning up endless dependencies passed through incidental controllers. This train of thought clearly brings us to containers. All of which are presented in an iOS environment.

Much ado about iOS app architecture

I appreciate this lecture as one of very few looking critically at growing pantheon of architectures offered by the iOS community. Don’t feel ashamed if you’re overwhelmed by this ridiculous number of options, iOS has its patterns to let you write clean code with pure MVC.

Mutating And Nonmutating Functions

Some thoughts on mutating and nonmutating functions in Swift from Soroush Khanlou. What is missing and what Apple can do better?

Codable: Tips and Tricks

We all know the Codable basics by now. It’s time to create a set of good practices around them.

Challenges of Supporting iPhone X

Early support of iPhone X unusual interface can buy you a lot of love from your present users, as well as bring new ones along. The team of PSPDFKit comforts us that we’re not the only ones to be challenged by UI adjustments.

Best iOS hacks from Twitter: October Edition

Bits of code, reminders of easy-to-forget yet painful gotchas - in general, awesome things you may have missed in the waterfall of tweets.




Design

Colour management and gamut

How to use all the Display P3 and sRGB colours and not to get lost.




Video

Building a Framework with VIPER

Keep up the good work, girl! The best 20-minute presentation of VIPER architecture concept.

Exploring Natural Language Processing

An intriguing talk that demonstrates anyone can start using natural language processing in his/her next app. 💫




Others

Core ML: Machine Learning for iOS

Meghan Kane has proven her machine learning knowledge to us multiple times. Thanks a lot for more materials to learn from!




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


44th week of 2017

Permalink - Posted on 2017-10-31 19:00

The world is waiting for iPhone X. Even if it counts-in developers’ community, no one rests! Enjoy the best articles, tools and news from the last week. 🤓

News

The First First Impression of the iPhone X

Smooth and pleasant article with some of the first insights into the long-awaited iPhone X.

Submit Your Updated Apps for iPhone X

The future is now. iPhone X will be available on November 3, but right now you can prepare and upload your application to iTunes Connect.

iOS 11.2 beta & 11.1

For very short time Apple had new iOS beta version 11.2 available to download while previous beta version (11.1) was not released. It is no longer valid. Stable iOS 11.1 is ready to download 🚀.




Development

Injecting forEach into chained method calls

It would be nice to put forEach in the middle of a method chain. With his Swift’s sequences knowledge Ole Begemann found a very nice way to do that. 🙌

How to Use iOS Data Protection

Data protection levels - everyone heard about it, some know how it works, yet not everyone has used it. Douglas Hill from PSPDFKit wrote a magnificent article about the data protection, how to set it up and how to use it. 🔐

A Beautifully Elegant way to Set-Match

Welcome back, Erica! We’ve missed you! And that’s a slick and elegant way to use the power of Swift’s switch statement. We’re grateful you couldn’t stay silent about it.

iOS Privacy: watch.user - Access both iPhone cameras any time your app is running

Let’s get real, this vulnerability creates a billion-dollar business because there is nothing more valuable than information. It seems to be there forever and even gets a role in movies from time to time.

Using tokens to handle async Swift code

There are different asynchronous APIs available on iOS using built-in or third-party solutions like GCD, Operations, Futures & Promises, or RxSwift. There are at least one more: tokens.

agvtool: Automating iOS Build and Version Numbers

Apple has created agvtool tool a long time ago, but very few people know about it or use it directly. Check what can be done with it.

Friday Q&A 2017-10-27: Locks, Thread Safety, and Swift: 2017 Edition

Mike Ash updates his article about lock and thread safety. Much appreciated, as the previous version was a little outdated.




Code

A composable pattern for pure state machines with effects

It’s hard to implement a state machine, especially readable one, which state-change requirements are easy to grasp and test. Andy presents composable solution inspired by bests from functional- and imperative- paradigms and written in Swift.




Tools

Kitura 2.0

Now taking advantage of the new Codable! 💃🕺 Check the article to get an update on new features!

PryntTrimmerView

This video editing lib looks neat! 😎 There is this one thing we wish for - support of Carthage.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


43rd week of 2017

Permalink - Posted on 2017-10-24 19:00

We have plenty of engineers’ favorite topics in the spotlight this week: configuration with xcconfig and plist, application architecture, project structuring, and background work. Cheers! 🍻

News

Apple Pay Has Expanded to Sweden, Denmark, Finland and the United Arab Emirates

Apple Pay is now available in Sweden, Denmark, Finland, and the United Arab Emirates. Congrats!

Selling your MacBook Pro with Touch Bar? Apple recommends this step

Tip from Cupertino on selling MBP with Touch Bar without your fingerprint.




Development

The worst possible application

What does the worst mean to you? Maybe you don’t completely agree with this interpretation of the worst, but it’s definitely up there. Can you point out all the flaws without looking at the final implementation?

Leveraging frameworks to speed up our development on iOS - Part 1

Reasons for as well as pros and cons of project modularization. An approach definitely worth considering, especially for large teams and comparable codebases.

iOS Architecture: A State Container based approach

The goal of this blog post is to show the architecture that the iOS team at Jobandtalent has been developing over the last few months. It’s an architecture that leverages Swift, value types, generics, sum types, and some React Native experiences. It works for them and it might work for you as well.

Throttling calls in Swift

Throttling is basically a mechanism that restricts the amount of scheduled work and may become spare. No matter what scenario you think of, this idea should pass the test.

Hey Siri: An On-device DNN-powered Voice Trigger for Apple’s Personal Assistant

Apple once again shares some details related to artificial intelligence. This time their engineers describe how the “Hey Siri” detection works across multiple platforms.

How To Manage Plist Files With PlistBuddy

An introduction to Apple’s PlistBuddy tool, which lets you manage the content of the plist files from the command line.

Using Xcode Configuration (.xcconfig) to Manage Different Build Settings

Managing multiple versions of an application is hard. Questions appear: should we use conditional building? Or rather create additional targets? There is a third way: Xcode configuration files.




Tools

Difference

A nifty little tool that points out the exact difference between two instances.

Cards

An easy-to-use implementation of charming cards from the new App Store.




Business

Why we are not cross-platform developers

Cross-platform development is tempting, especially because of cost reduction. But is it always the answer? The point of view presented here is close to our hearts.




Video

Comparative Asynchronous Programming

It’s good to hear Ash Furrow on stage again. Great talk on a very hard and sensitive topic.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


42nd week of 2017

Permalink - Posted on 2017-10-17 19:00

This week is filled to the brim with things to read, some to peek at, each and one of them highly worth checking out. Enjoy bits about architecture, security and open source, latest conferences releases, iOS UI/UX stuff, and more!

Development

Open sourcing Swift code

Guide for everyone who wants to start with open source and create his first project, for free, with code available publicly for everyone to look at. Great tips by John Sundell who already has several open source projects on GitHub.

iOS Privacy: steal.password - Easily get the user’s Apple ID password, just by asking

Next article in the series of iOS Privacy from Felix Krause. This time he found a way for phishing user’s Apple ID password.

How to write a simple real-world app based on the MVVM

In-depth tutorial about implementing MVVM architecture in an actual iOS application. The author faced same problems you would face and yet comes away unscathed. It should clear some of your doubts about this recently glorified architecture.

Modular Xcode projects

Xcode’s project structure from the ground. Cocoapods and Carthage can be a block box to some. If you want to know how those tools resolve dependencies, then read it. Pedro Piñera made a great work.

Deep links with no brainer

They’re everywhere, if any app you’re using happens not to support them, most probably you’ll be disappointed. Take a second to ask yourself how do you handle them? If the answer is nothing to be proud of, it’s time to change it with Ilya.




Code

Kryption - Secure, live messaging app

Nothing to add, check it out yourself. 🚀

Clean Swift Architecture

A new architecture for big and complex iOS apps. Looks interesting, but Configurator as a singleton worries me.




Design

iOS 11: Suggesting A better Control Center

It’s nice to know I’m not the only one struggling with a WiFi network connection. If we become loud enough, they should hear us in Cupertino. 📢




Business

Why Isn’t Agile Working?

A lot of companies are “doing Agile” instead of “being Agile”. The difference is not that easy to see, but John Cutler explains it nicely (with images 😎).

We fired our top talent. Best decision we ever made.

A great story teaching us how important is teamwork and communication. If there is one thing you should take from it, note that even masterpiece-like code will loose against maintainability if not documented and tested extensively.




Video

Functional Swift Conference Fall 2017

Functional Swift presentations are here. 💃 Check out another perspective of looking at Swift. ☣️ Warning! Highly addictive and inspiring materials.

MVVM at Scale: Not so Simple…

I think we all know this well, new architecture supported by a ton of tweets and rapidly growing amount of blog posts. And yet you seem to miss the opportunities it proposes, because it’s not easy to see its purpose in an iOS application. You’re not alone, someone finally said it out loud!

NYC try! Swift presentations come out one after another, don’t miss out on any, here!




Others

Awesome Ladies iOS Engineers to Follow on Twitter

If you find someone new on this list, you’re probably missing out a lot.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


41st week of 2017

Permalink - Posted on 2017-10-10 19:00

We hope it was a good week for you! It sure was for us - especially in terms of all the excellent materials we found for you. New APIs and enhancements to existing ones, awesome tools, and NSSpain videos… yummy. 😋

We’d love to hear your opinion on our evolution! Let’s start with a little survey on our Twitter. Thank you! We wouldn’t have been able to grow without you. 🌟

Development

The Flat Cache

Are you looking for a well-proven solution to keep track of your in-memory data? Have you ever wondered how Core Data manages objects in context? Or are you curious about identity map pattern implementation in Swift? You’re in the right place!

iOS Privacy: detect.location - An easy way to access the user’s iOS location data without actually having access

User privacy doesn’t exist. An application is able to easily retrieve the user’s location (and much more) by using the native image picker on iOS.

A Simple Approach to Thread-Safe Networking in iOS Apps

We know, we know, there are tons of pods to wrap the default network layer for you. But when it comes to maintenance you often have to fork the framework or copy sources into your repository to perform ad-hoc fixes. Believe us, system tooling is not as bad or difficult as you may think. And here is a small guide through thread-safe approaches.

iOS 11: The DeviceCheck API

If you had trouble with getting through the security session on WWDC 2017, Jordan Morgan covered the tastiest part for you.

Dictionary and Set Improvements in Swift 4.0

Goodies warning! 🍎 This excellent article leaves you hungry for food and refactoring your present Dictionary and Set code.

The 10 commandments of continuous delivery

Continuous Delivery is one of the hottest software development topics out therethere – and it’s been that way for a while. Many people claim they do it, but in the end - they’re just faking it. It’s not for everyone. Check this awesome list of 10 Continuous Delivery Commandments – it might help you to join the exclusive club of those who apply CD correctly.

ArraySlice In Swift

Everything you should know about slices in Swift 4 - drop-ing, slicing, and memory management.

Migrating to Codable from NSCoding

For all NSCoding users, check what you can gain from migrating to the new Codable in Swift 4 – and how painless the process is!




Code

Taming SourceKitService for Less Xcode Memory Consumption

Raise your hand if Xcode works flawlessly for you. [](https://weeklycocoa.news/s/31/Hv0YQP)... I thought so.




Tools

Reduce App

The Flawless App team doesn’t rest! 546Mb reduced to 16Mb? We’re convinced to upvote.




Design

Design Details: Drag and Drop

A mesmerizing usage of still pretty basic but available on iPhone drag&drop API. 😍




Business

Firing somebody terrified me — but the advice I got made a huge difference.

How to say goodbye and not lose your mind.




Video

Understanding code signing: x509 and Apple - Marin Usalj, Why You Shouldn’t Write Tests (Yes, We’re Going There) - Dave Schukin & more

If you haven’t noticed, NSSpain published video recordings from this year’s conference. I’ve handpicked these two from a bunch of great sessions and I urge you to put your seat belt on! What can go wrong with app signing? As most of us know – a lot. The first rule of war says: “Get to know your enemy.” 🤺 If only Apple’s system frameworks weren’t the greatest enemy of your tests…

What’s New in Swift 4

A delightful presentation of goodies from the newest version of Swift by Daniel Steinberg. 🍰




Others

The Destructive Switch from Search to Social

So real it hurts. When was the last time you relaxed with a book in your hand?




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


40th week of 2017

Permalink - Posted on 2017-10-03 19:00

This week, we have a fine mixture of articles with topics such as Swift, Apple APIs, Xcode, and more.

Feel free to let us know what you think and share your picks for next week’s issue on Twitter and via email. We’d love to hear from you. ✨

News

Face ID security guide releasedWe all have many unanswered questions about the new iPhone X security mechanism. Is it more reliable than Touch ID? What’s the false-positive rate? Will it still work in total darkness?You’ll find the answers to these and many other pressing questions in the new Apple document and on their support page.

Development

How To Implement Cache LRU With Swift

Most of the time, caches are an avoided topic in the mobile development community. We have these powerful devices with growing minimal capacity… 🛑 Don’t go down that route, respect your user’s resources. Even if they don’t notice it, the reward is that they won’t curse you either.

Why we built Magic Sudoku, the ARKit Sudoku Solver

Yet another great use of ARKit – this time we’re charmed by the solver of our beloved Sudoku.

Floating-point Swift, ulp, and epsilon

Deep dive into mysterious ulp – how it’s connected to floating point numbers and Swift.

Activating Code Diagnostics Tools on the iOS CI Server

The sooner an implementation issue is found, the cheaper it is to fix; we agree with Shashikant on that. As it could be seen on WWDC 2017, Apple encourages developers to take care of code reliability by introducing more and more Xcode modules to help. This week, let’s take a look at Address Sanitizer, Thread Sanitizer, Undefined Behaviour Sanitizer, Main Thread Checker, and how to enable them locally as well as on a CI server.

Rendering Markdown in Xcode 9

A pretty neat trick that finally allows you to preview rendered Markdown directly in Xcode; previously, this was reserved for Playgrounds.

Using generic type constraints in Swift 4

Basics, gotchas and use cases of generic constraints in the latest Swift.




Code

Swift Algorithm Club: September 2017 Digest

Swift 4 migration is always highly appreciated and new algorithms are nothing to sneeze at.




Business

How to use storytelling in your startup

No matter how revolutionary and desirable your idea is, if you’re not able to say something about it, people’s interest may dwindle. The discussed storytelling seems like a great strategy to appeal to human nature.

Facebook just changed the license on React. Here’s a 2-minute explanation why.

Short but interesting insight into events that drove Facebook to change the licences of its open source projects.




Others

iPhone X and WWDC: How to quickly become a iOS expert on StackOverflow

I don’t feel pressure to build my reputation level on Stack Overflow. 😅 But even if we don’t consider it a life or death issue, this article is pretty accurate.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


39th week of 2017

Permalink - Posted on 2017-09-26 19:00

Get yourself a cocoa, tea or any other brew, let the High Sierra installer do its job and, while waiting, take your time to read some of these delightful articles and listen to some enjoyable podcasts or videos. Have a good time! ☕️🍵🍷

News

macOS High Sierra 10.13 (17A365) Now Available

Nothing more, nothing less. macOS High Sierra is now available for everyone.

Friday Q&A Live or: mikeash rambles about stuff

Mike Ash starts his personal podcast. Great news! 🔥

Development

Generics in Swift 4

Extensive guide through Generics in Swift 4, including changes we’ve all been waiting for.

App Localization Tips With Swift

From zero to fully translated application. All necessary information you should know to make a multi-language product.

The power of switch statements in Swift

We’re sure you all know the power of switches with enumerations. But have you ever considered what you can do if you go beyond enum?

Why you should stop using Git rebase

I’m sure the audience is split, the answer is obvious to some but not to all of us. Let the guy speak for himself.

NiceJSON

Soroush Khanlou continues his series about Swift on the backend. Again, we have one of the most crucial elements in communication between client and server. Great lecture not only for Vapor users.

Friday Q&A 2017-09-22: Swift 4 Weak References

Mindblowing weak reference implementation from the ground. 💥 And it comes with spoken version, kind of.

iOS CI Olympics-Player Three: TravisCI, Four: Nevercode and Five: CircleCI

Continuation of the iOS CI Olympics: Competition of Cloud iOS Continuous Integration Servers. This time the author takes a closer look at TravisCI, Nevercode and CircleCI. Check how they compare to the competitors.




Code

3DSnakeAR

Snake is Xcode 9 ready from now!




Business

Tom’s Guide: ‘iPhone 8 Is World’s Fastest Phone (It’s Not Even Close)’

The Father Of Mobile Computing Is Not Impressed

On the one hand, such a powerful device, the best available. On the other hand, it’s so simple and intuitive that it leaves you no pleasure of possessing knowledge. Especially the second article will force a moment of reflection, even though it may take you few minutes to read.

7 minute read to save $100,000 on your app idea.

Have you ever had an idea so novel that you wanted to build an app on it? Or a solution for an unresolved problem that would seal market niche? But then it feels intimidating to give it a shot as something more than weekend coding. Here we have a place to start.




Video

Writing future proof Swift

Few tips that introduced to our daily coding routines will earn us a gratitude from our future self.There are more videos from Swift Usergroup Netherlands.

Flexible View Controller Interfaces With Swift 4, A Funny Thing Happened On The Way To This Array

Try! Swift New York presentations’ recordings are available on (Realm Academy](https://weeklycocoa.news/s/29/Lmgbxs) now!




Others

🍎🙈😭 via patrick wardle

Speechless…




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


38th week of 2017

Permalink - Posted on 2017-09-19 19:00

Undoubtedly, the community gains its usual speed after the holiday season and this fall announcements. That’s right, there’s something for everyone. Helpful bits on new APIs, Swift 4 development-ready articles, quite a few studies of Continuous Integration. Notchless tool, business and design stuff.

News

Subtle Face ID security feature

No matter how many supporters or sceptics are out there of Apple’s new product, one thing is certain - all eyes are watching and any slip on Apple’s Conference won’t be missed.

Development

iPhone X: Dealing with Home Indicator

Now, it’s the right moment to run all of your existing apps on iPhone X. We bet you’ll appreciate any support with this relic of the beloved Home Button.

iOS CI Olympics : Competition of Cloud iOS Continuous Integration Servers

The Continuous Integration Olympic Games has started. A comparision of the most popular cloud-based CI services: BuddyBuild, Bitrise, Nevercode, TravisCI and CircleCI will be performed in several disciplines. Stay tuned for more! 🎧

iOS CI Olympics-Player One: BuddyBuildiOS CI Olympics-Player Two: Bitrise

Creating custom collections in Swift

Array, Dictionary and Set, those are standard Swift collections. But their API is generic to the point that you may struggle because of it. Creating new one is not hard. John Sundell shows how it can be easily done in the Swift 4.

The Best New Features in Swift 4

If you still don’t know the most interesting features in the Swift 4, there you go - five selections from Mike Ash.

Designing a Button Bar-Style UISegmentedControl in Swift

An elegant and clean look with so little code! Constrains-only solution was the selling point for me.

Cache Carthage to speed-up iOS Continuous Integration

“There are only two hard things in Computer Science: cache invalidation and naming things”. Caching is hard and caching Carthage artefacts on CI is not an exception. Check how it can be done on Travis to speed up builds.




Tools

NotchKit

We are genuinely curious how would Apple treat an app breaking all the design guides on App Store release review. Nevertheless, rest assured they stirred a tempest👆 in social media👆 with this notch thing👆. There are too few words to fit all the tweets! 🌪




Business

How To Ship Your Product With Ship ⛵

It’s time to collect your crew and fill the sails of your upcoming product. We all know supporters make a power that keeps us motivated.




Design

Touching up blemishes on Sephora’s UI

A user experience case study of Sephora’s iOS app. An excellent example of incrementally enhancing design and intuitiveness of user interface for popular application based on users’ feedback.

The engineer’s guide to not making your app look awful

You know this one, don’t you? A side project, a strike of inspiration and yet after the mood is gone you can’t look at the effect. With this couple of tips, you’ll be as content with the interface as the codebase.

The Ultimate Guide To iPhone Resolutions updated

Brilliant in its simplicity “The Ultimate Guide To iPhone Resolutions” has been updated for iPhone X. That’s right, the true 3x screen has finally arrived! Thank you PixelCut for keeping it fresh.




Video

Design and Development Videos, Fall 2017 Videos

Apple has presented new cool devices. With a new iPhone, a collection of new videos were presented to get more familiar with the new 🍎 design.




Others

Is Xcode Stable Yet?

My new homepage. 😎




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


37th week of 2017

Permalink - Posted on 2017-09-12 19:00

This week is exclusively development-oriented. The community is getting ready for Apple’s Conference. We decided to spare you intrusive gossip and leaks about upcoming launches. If you’re tired of post-conference news by now, enjoy articles about GCD, networking, Continuous Integration and more!

Development

Dispatch On The Server

Grand Central Dispatch or, if you prefer, Dispatch API is a core tool to handle asynchronous operations every iOS developer is familiar with. I bet you’ve used it in your last iOS application. Check out how this universal framework can become useful on the backend side.

Performance Matters: O(N)

An important reminder for all of us - algorithm performance depends as much on machine architecture as on algorithmic complexity.

How to write Networking Layer in Swift (2nd version)

Delightful and inspiring network infrastructure proposal. I’m glad to see separate success and error handlers, even if one of them can’t be formatted as trailing closure. Also, attention paid to types structure results in better readability and makes this kind of communication protocol’s mechanics easy to understand.

Secret variables in Xcode AND your CI for fun and profit 💌

You shouldn’t store any sensitive information like API keys or passwords in the source code. Continuous Integration systems like Travis, BuddyBuild, Jenkins and others provide a solution for this problem. But bringing this functionality to developers is a challenge. Robin Malhotra solves this problem.

Centralized vs. decentralized CI / CD strategies for multiple teams

Have you ever wondered which CI / CD strategy you should choose for your company? Centralized or decentralized? What are their major benefits and where do all the pitfalls lay? Have a look and decide.

4 Ways To Pass Data Between Operations With Swift

Operations are one of the tools available for tasks management. They can become handy when there is a need for mutually dependent chunks of work. If you’ve ever wondered how to pass data between operations, you’re in the right place - choose the most suitable method from those described by Marco Santarossa.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


36th week of 2017

Permalink - Posted on 2017-09-05 19:00

September is here and most of us already got back from vacation. This week is full of articles, which will help you get back on track. Async/await for Swift, code quality issues, ARKit – feel free to choose. Next time we meet, Twitter will be trembling from Apple’s launches. 🌋

News

New Beta Downloads Now Available

I guess the deadline is approaching ☠ so each team is working as fast as possible. That’s why there are a few links to download. Nevertheless, macOS High Sierra 10.13 beta 9, iOS 11 beta 9, and tvOS 11 beta 10 builds are now available.




Development

Concurrency with Chris Lattner & Async/Await for Swift

Chris’s concurrency manifesto for Swift went viral and the result is this podcast invitation, as well as a full-blown proposal.

Why Coroutines

Another product of ongoing discussion about the Swift concurrency model. This time, the author uncovers computer concepts that will serve to implement proposed solutions ahead of the curve.

Using the factory pattern to avoid shared state in Swift

A great use case of a classic design pattern.

ARKit and CoreLocation: Part One & ARKit and CoreLocation: Part Two

A real deep dive into navigation in augmented reality. Everything you need to know, including the math that would normally scare you off.

How is ARCore better than ARKit?

This year, Apple introduced ARKit as a revolutionary AR solution on a mobile platform. But they’re not alone. Google has introduced ARCore, a strong competitor for ARKit. Which one’s better? Time will tell.

Dealing with Complex Table Views in iOS and Keeping Your Sanity

One of the basic controls in UIKit can become a real pain if used sloppily. Everyone has used it in their career but would rather avoid messing around with this code again. Check out a few simple ways to avoid it.

Single Responsibility Principle: Is It a Fundamental Mistake?

Let’s talk about SRP once more and about how, by passing on its meaning and priority through oral tradition, we might end up getting it wrong.




Tools

Flawless App

If you care deeply about the visual quality of your mobile apps, you will find this app indispensable. Its integration with the iOS Simulator makes comparing design mock-ups with actual implementation a breeze.

This site helps you visualize the conflicting constraints in the logs

Auto Layout on iOS and macOS is awesome. But when it goes wrong, the error logs are a pain to decipher.

This site helps you visualize the conflicting constraints in the logs. It was built using Swift, Vapor, and Sparse; and the source code is available on GitHub. If you found it useful, please give it a star.

Mark

If you tend to pay attention to code organization, then it’s a great option to speed things up.




Business

How to get started contributing to open source projects

Listen to this guy carefully. If anyone is certified to speak about the pros of open source and to give advice on how to start, it’s him.

Dirty secrets of DevOps

You’ve certainly heard about DevOps culture or success stories where IT companies implemented it in relatively short time. In reality however, this can be a bit different and not as easy as it may seem. Check the most common obstacles of attempting to adopt DevOps.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


35th week of 2017

Permalink - Posted on 2017-08-29 19:00

Apple spoils us again with fresh betas, open-sourced refactoring engine and Machine Learning insights. John Sundell strikes with two entries - the first article from new Core Animation Gems series and cool lib for all of us Swift-scripters. Intro to Swift compiler development, Swift error handling, (B)VIPER architecture and more!

News

New Beta Downloads Now Available

Can you smell this fall 🍂 already? It’s definitely noticeable here in Poland and at Apple’s headquarters.New beta downloads are now available, including macOS High Sierra 10.13 beta 8, iOS 11 beta 8, watchOS 4 beta 8, tvOS 11 beta 8. Download and try it yourself.

Swift Local Refactoring

At WWDC 2017 they promised new refactoring engine, which would be Open Source so that everyone could create new refactoring actions. The day has come, and the logic behind local refactorings is implemented entirely in the compiler and SourceKit, available in the Swift repository. 🍾🤓




Development

Core Animation gems: Using replicator layers in Swift

That’s true, Apple’s Core frameworks are gigantic 🗻 and powerful. Even if sometimes messy and spooky, each one of them is a field worth mastering. It’s time to learn from a guy that cut his teeth on the Core Animation implementing his Swift game engine.

Getting Started with Swift Compiler Development

Intimidating at first, digging into Swift compiler is achievable for anyone of us. Worry not, Brian has us covered! Your kidneys are safe, after you get back from work, compiling should finish. 😂

…use a $20/month Digital Ocean “droplet” running Ubuntu 16.04. It can compile apple/swift in a few hours.

Friday Q&A 2017-08-25: Swift Error Handling Implementation

Deep look into Swift error handling by Mike Ash. Check what differences were made in Swift 4 and how error errors compare to C++ exceptions.

Improving Neural Network Acoustic Models by Cross-bandwidth and Cross-lingual Initialization,Inverse Text Normalization as a Labeling Problem, Deep Learning for Siri’s Voice: On-device Deep Mixture Density Networks for Hybrid Unit Selection Synthesis

Last week Apple published three new articles related to Machine Learning! Check how Apple engineers solved some of ML problems in their worth billions of dollars software.

Catching Leaky View Controllers

If you remember Arek Holko’s method of detecting not deallocated controllers, here is another one for you.




Tools

GSTouchesShowingWindow-Swift

A new version of a tool which automatically shows all touches inside your app by Lukáš Petr. Works with app extensions and has support for both Swift 3.2 and 4.0. If you are planning to make app review videos, it would be definitely a nice helper library.

ShellOut

Run shell commands directly from your Swift script.




Business

How feeling left out at work can affect your job

This insightful and inspiring article is not exclusively for those that feel ignored in their workplace. If you ever see one of your teammates sitting alone, you may be the one that makes the day better for them.




Video

Break the Monolith with (B)Viper Modules

Introducing (B)Viper with Module Builder, structured engineering approach for big mobile apps with example repo.

Convolutional Neural Networks with Metal & Swift

Brett Koonce gives us a quick overview of the state of the image recognition neural networks on mobile devices.




Others

Swift is like Kotlin

So you can write Swift with one hand and Kotlin with another. 😎




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


34th week of 2017

Permalink - Posted on 2017-08-22 19:00

New betas from Apple, Security Enclave firmware decrypted, a box able to hack any iPhone 7 and 7 Plus, we have a decent amount of news for you this week. If you missed it, Chris Lattner has his essay about future of Swift’s concurrency. Big Nerd Ranch will try to save you from a headache caused by protocols with associated types, so you can use them in refactoring with John Sundell.

News

New Beta Downloads Now Available

We hope you have peaceful vacations 🏖, unlike Apple engineers who do their best to provide you fresh beta versions on a weekly basis.New beta downloads are now available, including Xcode 9 beta 6, macOS High Sierra 10.13 beta 7, iOS 11 beta 7, tvOS 11 beta 7. Download and try it yourself.

Apple Secure Enclave (SEP) firmware decrypted

@xerub has published on his Twitter links to keys and tools which can be used to decrypt SEP firmware. This key is only valid for iPhone 5S and allows security researchers and hackers to look at the firmware for bugs. Thankfully, sensitive user data, like a fingerprint, are not at-risk. If you want to read more follow those links:

If you are more interested in the Secure Enclave Processor (SEP), you can read or watch Demystifying the Secure Enclave Processor from Black Hat.

This $500 Box Can Hack Any iPhone 7 & 7+ Passcode!

More bad news for the Apple security team. A small box called “IP-Box 3” for “only” 500$ can break into your iPhone 7 or 7 Plus and bypass your passcode. If you want to read more, check out Reddit or appleinsider.




Development

Concurrency in Swift: One possible approach

Chris Lattner outlines his vision regarding concurrency in Swift. Take a cup of your favourite beverage ☕️🍵🍺 and let this extensive and enlightening crackdown charm you.

Why Associated Type Requirements Become Generic Constraints

Hands up everyone that had (╯°□°)╯︵ ┻━┻ reaction after getting Protocol ‘SomeProtocol’ can only be used as a generic constraint because it has Self or associated type requirements. compiler error. ✋ Let Jeremy Sherman turn it for you ┬──┬ ノ( ^^,ノ).

A Beginner’s Guide to AI/ML

Artificial Intelligence and Machine Learning will shape our future more powerfully than any other innovation this century. Would you like to learn more about basics of AI/ML? Check those articles written in simple and plain English.

Replacing legacy code using Swift protocols

Exquisite tutorial by John Sundell touching one of the most important parts of everyday work of programmer - refactoring. This not being a “silver bullet” should be a clear sign how complex working with legacy codebase is. It’s still a highly appreciated, good reference for everyone.




Tools

Githawk

Just as Pooh love honey, we love open-source projects. Take your GitHub repo with you on a native application. Available on the App Store. ❤️




Others

Playing action video games can actually harm your brain

Do you like to grab a pad or mouse and keyboard to take a rest from work? It truly surprised me how clearly gaming influences human brain.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


33rd week of 2017

Permalink - Posted on 2017-08-15 19:00

This week we’re served with new betas from Apple. Then we take a deeper look at Futures and Promises, improve our efficiency in either working with Swift APIs, preparing open source project release or handling long compilation times.

News

New Beta Downloads Now Available

You know this part already, this Fall 🍂 is on its way, so developers at Apple admire the sunset on postcards from their families. Appreciate and enjoy, guys. 🏝New beta downloads are now available, including macOS High Sierra 10.13 beta 6, iOS 11 beta 6, watchOS 4 beta 6, tvOS 11 beta 6. Download and try it yourself.




Development

Under the hood of Futures & Promises in Swift

It’s true that third party libraries save a lot of boilerplate code. Still, if you ever maintained app throughout language/API changes you know it’s a double-edged sword. Futures & Promises look impressive, but it’s crucial to understand the mechanism before using it in production.

MONADIC NETWORKING: I PROMISE!

One more article about Promises. This time Bj Kandel calls them by the Imperative name. Check how to implement monadic structure without a deep knowledge on Monads. Practice, assess challenges you encountered and stay tuned for the next article to learn the theory.

Friday Q&A 2017-08-11: Swift.Unmanaged

Mike Ash wrote an outstanding article about Swift and C API. If you ever wonder when to use passRetained / passUnretained / takeRetainedValue / takeUnretainedValue method you will find examples for all of them.

My Xcode Project Structure for Open Source Project

Painless setup of a library with an example app in Xcode. Example project should be obligatory for each open source library. It’s a key to understand the benefits and seems to be preferred way to learn a new tool for most of the developers.

Speed up Swift compile time

We all know this well. cmd+r and cmd+tab to check Twitter… 10 minutes later you forget you were coding in the first place. Less swifty but more productive, are you in?

Swift World: What’s New in iOS 11 — Make Corner Round

iOS 11 comes with many small improvements, not only CoreML and ARKit. As always, it’s nice to have someone to wrap up a piece of new API for us.




Tools

Core

Core helps you design applications in a way that the app flow is driven by business layer, instead of UI layer. It also promotes unidirectional data flow between components for consistency, high testability and powerful debugging.




Business

The 3 types of bullshit feedback — and what to do about them

Working in a group, leading a team, finishing a challenging project, often we would like to hear an opinion of the rest of the team on this cooperation. On the other hand, the feedback may come to us no matter if we desired it. Frustration, misinformation and much more can make feedback daunting. These bits of advice will help you handle any kind of harsh opinions.




Video

DEF CON 25 - Max Bazaliy - Jailbreaking Apple Watch

In the news from the 31st week of 2017, we mentioned Max Bazaliy’s presentation at DEF CON 25. Now is time for a video material covering how he jailbroke his Apple Watch.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


32nd week of 2017

Permalink - Posted on 2017-08-08 19:00

A little bit of everything, some hot topics like Google employee anti-diversity manifesto, cool AR toy to draw charts and various development topics. Grab your favourite, but take it easy - we hope you’re on your vacations, unlike Apple devs who provide us with next iteration of their software.

News

New Beta Downloads Now Available

New beta downloads are now available, including Xcode 9 beta 5, macOS High Sierra 10.13 beta 5, iOS 11 beta 5, watchOS 4 beta 5, tvOS 11 beta 5. Download and try it yourself.

RoomKeeper with branding is here

If you have a meeting room at your 🏢 workplace, then you definitely need the RoomKeeper! Just configure your iPad with an online calendar and mount it by the door. Quick booking of meeting rooms was never that easy 😍. If you need your own logo and 🎨 colours, that’s possible as well.

So, about this Googler’s manifesto.

We’ve probably all heard about anti-diversity manifesto by Google employee, so there is no need for us to repeat half of your Twitter feed. But this guy seems to have something interesting to say from a senior software developer stand point.




Development

Top 5 Tips for Integrating SwiftLint into iOS CI/CD Pipelines

How to best integrate Swiftlint with your project and a continuous integration platform of your choice.

CwlLayout: a Swift wrapper around Auto Layout

The introduction of a declarative approach to composing user interface with Auto Layout. It’s simpler than visual formatting or even UIStackView. Check the full comparison or try it right now by getting the source code from GitHub.

Reducing flakiness in Swift tests

This time John Sundell describes how to improve unit and UI tests to reduce flakiness. No more telling “It works on my machine”.




Tools

ARCharts

That’s what we call leaving a client speechless.

twitter-unfollow

That’s a must-have for all of the social addicts out there. Challenge yourself to spend less time scrolling through Twitter feed and reduce the amount of incoming notifications, so you can have more focus and gain some time to develop and improve your programming skills.




Business

The Problem With Abandoned Apps

Author has gone mad and it’s totally understandable. If you had a faith in product as big and influential as App Store, and invested a considerable amount of money in an app you won’t be able to use anymore, you can be disappointed.




Video

Understanding Why Strings are Evil

Even though a string is a basic concept in application development, it has to be powerful to support our beloved emoji. 🙃 Encodings, performance, user experience, there are a whole lot of aspects that influence its complexity. Yet often we think of a string as of universal container for any kind of data, and we’re using them wrong.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


31st week of 2017

Permalink - Posted on 2017-08-01 19:00

Let me introduce new section that will appear here from time to time - Code. There are great pieces of art, handful snippets, clever solutions out there. It may be yours! Don’t hesitate - share it with us today!

News

Available Plugins (Scores)

Felix Krause annouced scores for Fastlane plugins. Now you can select best plugins and see what plugins are used by developers. 👩‍💻👨‍💻

Expanded Tester Limits in TestFlight

Fantastic news - Apple extended beta testers limit up to 10,000 users. 🍾

Facebook kills AI that invented its own language because English was slow

AI decided that human language is too complicated. But no one warned it English is the only allowed language.




Development

Jailbreaking Apple Watch

At DEF CON 25 Max Bazaliy presented how he jailbreak the Apple Watch. For now, only slides from the presentation are available, but soon video material should be available. You will ask why to jailbreak an Apple Watch? The answer is easy because it is possible 😈

Friday Q&A 2017-07-28: A Binary Coder for Swift

This article will blow your mind. Mike Ash once again wrote an amazing article. This time is about Binary Codable and Decodable protocols. You can check the code directly on the GitHub.

Core Data Notifications With Swift

Overview of all CoreData notifications and keys. If you are planning to play with concurrency and CoreData you have to know them.

Building a declarative animation framework in Swift - Part 2

Second and last part of the “Building a declarative animation framework in Swift”. In this post, you will learn how to coordinate animations between multiple views 😻.




Code

Get needed time to animate y position to specific value in animation

Calculate time needed to animate y position’s value depending on timing function.

iOS 11 by Examples

The best way to make sure you didn’t miss a feature is to implement them with Swift 4!




Design

Are Notifications A Dark Pattern?

Can you focus on washing dishes for fifteen minutes without checking the last tweet every time your phone vibrates or rings? Notification is a crucial tool that product owners hold in their hands. Information overload is a thread to all of us. Don’t be afraid of turning your notifications off, read a book, play with a cat, the world will be there when you’re finished.




Business

How to Launch on Product Hunt 🚀

From market trends and content of our Twitter dashboard, we are sure Product Hunt is next powerful media nowadays. But it, surely, didn’t forget what was it’s purpose - to help creators shine and serve most suitable products to its audience.

Apple is about to do something their programmers definitely don’t want.

What is your opinion on this topic? I love to sit with my team, but it requires self-training focus and fighting off distractions. No doubts about it, there are always supporters and opponents of eighter.




Video

Cooperative Path Finding

You must not allow yourself to be misled by a few stutters. The subject is definitely complex but interesting at the same time. So even if you didn’t entirely get it you want to keep digging yourself.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


30th week of 2017

Permalink - Posted on 2017-07-25 19:00

Every week, the community provides us with new materials about upcoming API’s. Also, Machine Learning seems to have become a regular guest. Don’t think we forgot about ARKit - in fact, we think it’s really fun and would like to encourage you to try it out. That’s why we prepared the ARKit Snake game! 🐍 It’s open source so everyone can dig right into it.

News

New Beta Downloads Now Available

🆕 New beta versions now available. Xcode 9 beta 4, macOS High Sierra 10.13 beta 4, iOS 11 beta 4, watchOS 4 beta 4, tvOS 11 beta 4. Download now and give them a try.

Xcode’s Subversion integration will be deprecated in a future release.

Don’t lose hope!

Apple Machine Learning Journal

🔥👨‍🚒 Apple has launched its own blog about Machine Learning at Apple. The first entry is about Improving the Realism of Synthetic Images but there will surely be more posts to read and more material to learn from. What do you think, why is Apple making a neural network to detect the human iris?




Development

Working with CoreNFC in iOS 11

A step-by-step tutorial of the NFC handling in iOS 11. There are plenty of reasons why you need your next app to support NFC. You definitely want to start with NFC tags in this article.

3DSnakeAR

We have given ARKit a try this time. A well-known game, Snake, was brought to life and released into the wild 3D world of Augmented Reality.ARKit is truly a game-changing, easy-to-use framework. After only a few days, our snake charmer [Michał] (https://twitter.com/@_mkowalski) surprised us with a snappy specimen in our office. If you’d like to have your own, check this GitHub project!

Building a declarative animation framework in Swift - Part 1

If you remember Creating great animations on iOS from the previous week, John Sundell has a long-awaited extensive article on this topic. Create your own declarative animation framework. And be sure to stay tuned for the second part.

iOS Simulator on steroids: Tips & Tricks

You will definitely love this article. All tips and tricks of the iOS Simulator in one place - the internal menu item, screen recording, sharing extension, and much more. Great job Ahmed 👍.

- Did someone say multiple Simulators? Can they deliver it with an iMac Pro? 😁

Robust Adversarial Examples

Is it a cat or a monitor? …or cat monitoring?

Pros and cons of iOS machine learning APIs

One blog post to rule all the machine learning APIs available on the iOS. A comparison of all ML frameworks like CoreML, Metal Performance Shaders, TensorFlow and Caffe, made by Matthijs Hollemans. If you don’t know which one to choose, read this to find out.

Customizing the file header comment and other text macros in Xcode 9

We have been doing it wrong. A great candidate to include in the Initial commit next to .gitignore:<ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist

All about Concurrency in Swift - Part 2: The Future, CoreData: CRUD With Concurrency In Swift – Part 4

Marco and Umberto team up to serve us fully fledged materials on Swift concurrency from different perspectives.




Business

Apple’s Long History of Rejecting ‘Objectionable Content’ From the App Store

Are there any App Store release fans on board? That’s what we thought. We all agree it’s a serious pain of Objectionable Content. 🕵️🕵️




Video

5 Secrets of Reactive Programming

Listen to tic-tac-toe, it’ll tell you secrets that will make Reactive Programming closer to your Swifty heart.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


29th week of 2017

Permalink - Posted on 2017-07-18 19:00

A lot of various topics are covered, from Swift 4 to API changes. Also, ADDC 2017, App Design & Development Conference, provided us with few interesting videos, although we could include only tiny part of them. Quite a lot of them touches communication subject, no matter if it’s Designer - Developer, Developer - Management, or Developers to one another, we can all learn from that.

News

What’s new in Swift 4

Swift 4 Playground by Ole Begemann now covers @objc inference, new integer protocols and even more examples!

Why We Love 1Password Memberships

Recently we could hear a lot around 1Password and its plan to remove local vaults from the application like: Who moved my cheese, 1Password?, Why Security Experts Are Pissed That ‘1Password’ Is Pushing Users to the Cloud or 1Password has confused everyone with shift to cloud-based subscriptions. But thankfully AgileBits responded with the blog post which should calm us down. You can track Twitter account to get the newest information.




Development

iOS 11, Privacy and Single Sign On

Have you ever struggle with a third-party library? Or maybe you had to extend release scope to rewrite functionality that uses abandoned open source project? Unless I would have to invent the wheel from scratch, I try to avoid third parties. And I’m not alone with such concerns, e.g. Arek Holko. It feels nice to have Apple to support you with a native solution. We hope simplification of API and dev’s flow will become tradition side-by-side with user experience improvements.

Cracking the code behind Apple’s App Store promo card design

It’s not really a surprise that Apple came up with an unconventional way of handling gift cards. Esthetic and readable but also customised to trigger device’s scanner. As always, this feature will be private for a while but it doesn’t mean you cannot hack it, right?

Changes to location tracking in iOS 11

WWDC 2017 introduced a lot of changes, bigger, like ARKit, and smaller, ones that are easy to miss. But iOS community is truly amazing and have us covered. This extensive article about upcoming Location API changes is a great example.

Hyperproductive development

Everyone that has never had this kind of relationship with their application - raise your hand. So we’re all guilty of going with the flow. Or maybe we should be proud of our performance then? Start to be proud that you child has grown, in size or importance, and it deserves more people to take care of it. Remember that you have the power to teach others to take good care of it.

Reducers - Dealing With Asynchrony

How to deal with state changes and asynchronous code? One will love reducers pattern as shown in the article, the other may be sceptical, for example, my colleague Łukasz. The important part is that it’s testable.

User Breakpoints in Xcode

Overview of all breakpoints type available in the Xcode by Michael Ochs. You can even make a joke for your coworkers by playing custom sounds during debugging. 😂




Tools

MessagesView

Probably, the best open sourced control for messages on GitHub. Configurable from Interface Builder, a collection based and fully customizable. Check out the article to learn more - The Messages View – Online Communicators Made Easy.

Branch Metrics - Deep Linking, Attribution and Mobile Marketing

Battlefield tested by integrating with one of our older projects. Downloads count risen significantly in one month! Consider giving it a try.




Business

Why you should argue with your employees

As an employee, I totally agree. It’s a sign of trust from both sides.




Video

Creating great animations on iOS

I can repeat it once again - it’s really hard to unite designers and developers. Even though we share the same goal of creating delightful, impressive application. Going through animations improvements take time and may cause frustration. Check John Sundell sharing his experience with us.

Lost in translation

How does the team that has eyes of the whole world on itself solve communication issues? What are they struggle with?




Others

Simulator in full screen

Marcin Krzyzanowski‏ showing simulator debug menu and iOS in fullscreen.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


28th week of 2017

Permalink - Posted on 2017-07-11 19:00

News

New Beta Downloads Now Available

Hot stuff alert! 🔥 New beta versions are now available. Xcode 9 beta 3, macOS High Sierra 10.13 beta 3, iOS 11 beta 3, and tvOS 11 beta 3. Just watch out for this kind of surprises.

Introducing Vapor Cloud — A Fast and Reliable Cloud Service

Nice to meet you! 👋 A friend of Swift’s is a friend of ours. This serious contender should ease all your doubts about server options for Swift on the web.

I Got Hacked and All I Got Was This New SIM Card

The short and interesting story of Justin Williams, who was hacked with 2-factor authentication enabled. These days, even security codes sent via mobile phone aren’t secure.




Development

Writing end-to-end JSON mapping tests in Swift

A great example showing how to improve unit and end-to-end tests containing JSON by making a single source of truth, without involving web service connection.

Errors On The Server

It’s really pleasing to welcome the second article about Swift on a server. And, we aren’t done yet! 👓📖 In this great article, Khanlou dives into error handling in Vapor.

How do I use result types? When using a Result enum for callbacks, how to access the Error?

With the arrival of Swift, the Result enum appeared and joined a canon of best language practices. Most of the frameworks probably already use this to handle failable and asynchronous operations. Here you will find best practices concerning the handling of Result in your application. For an advanced trick catch up with Daniel Steinberg in the Video section.

Lessons Learned Using Server-Side Swift in Production

We wrap up on the server-side Swift topic with this extensive article. It’s a summary of the experiences gained through building a production-ready backend. A few points will surely surprise you – and some may even save you lots of trouble.




Business

How Often Should You Update Your App?

I leave the office to get a little walk home – a quick glance at my iPhone and what do I see? App Store’s red badge with ten pending updates. 😰 Last week, we learned how to decrease their size. This week, we’ve got insight into how frequently we should release a new version.




Video

Swift Talk #57 Certificate Pinning

An application providing sensitive data requires an appropriate security mechanism. Certificate pinning is an example of one such mechanism. The objc.io team, in collaboration with Rob Napier, can’t wait to help you with that in your existing app!

Why the Func

My personal favourite this week. It’s like exercise for your brain! 🤔 Every second of it will make you wonder about all those goodies to introduce to your codebase. 🍰🍩🍍 Thank you for opening our eyes to the multiparadigm abilities of Swift, Daniel!

How to Clang Your Dragon 🐉

When Swift 4, iOS 11, ARKit, or CoreML just aren’t enough for you anymore. If you’re looking for something more challenging, perhaps it’s time to build you own language. Harlan Haskins shows us how to build your own compiler with Swift and LLVM. 🐲




Others

What Happens When Two Artificial Intelligences Try To Prank Each Other?

- Knock, knock.

- Who’s there?

- 🤖




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


27th week of 2017

Permalink - Posted on 2017-07-04 19:00

News

AutoMate 1.4.0 & AutoMate-AppBuddy 1.2.0

New versions of the UI test automation frameworks are now available. They are compatible with the macOS and tvOS platforms and are characterised by improved testing in the landscape orientation.

coremltools 0.4.0

Apple has released a new version of the coremltools, which introduces the Keras 2 models support 🤖.




Development

Cocoa AI

A well full of resources regarding CoreML. Check models, demo apps, and helpers to start with Machine Learning on iOS today.

An aside about flatMap and monads

A monad is a topic that concernes Swift developers since the very beginning. There are plenty of articles about it but IMHO this is the best one right now. The theory it puts forward is placed in the context of Swift’s standard library. At the same time, it gives an insight into the Haskell use-case. Now it’s become clear to me why the flatMap topic may be so emotional for developers with a functional programming base.

Advanced Sequences On The Server

Soroush Khanlou strikes again – this time with Swift Sequences and a great article about how he used them in the Beacon project. Definitely check it out – even if you are not writing a server application in Swift. Battlefield tested. 💪

10 Myths About Docker That Stop Developers Cold

Are you afraid of Docker? I was, even though I wanted to give Swift a try on Linux. So check this out, and let it make you a believer. What then? You can grab a Swift image and play with Swift from any system you’re using.

One Weird Trick to Lose Size

Currently, social networking applications occupy more than a hundred megabytes. Facebook has more than two hundred. You can do better! Earn the sympathy of users as well as their LTE package and iPhone storage. Read about how Halide developers managed to avoid oversizing an application.

Asset Catalog Changes in Xcode 9

Cory Bohon discusses how to work with the new Assets Catalog in Xcode 9. It will let you unleash the power of vector graphics and colour assets. 💥

How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras & React Native

A behind the scenes look at Silicon Valley. An entire history of how to make an app that identifies hot dogs (and not hot dogs) using neural networks. Everything was done by a single developer. 😱

Hands-on XCUITest Features with Xcode 9

We’re glad that someone paid attention to upcoming XCUITest and XCTest features at WWDC 2017 - and is as excited as we are about the new possibilities and the generosity of probably the biggest update since introduction of the Xcode UI automation. If you have never tried to automate UI testing with Xcode check this list of new possibilities and start now. We think we can help you with it through AutoMate. I can’t wait to migrate it to Swift 4 and fresh XCUITest.




Design

How to enhance mobile interactions with sound design

We know how to create an engaging UI experience in our iOS applications. But not many of us dive deeper into the sound experience. At Facebook, they pay attention to every detail. Check out what it looks like when it’s done right.




Others

Developers Who Use Spaces Make More Money Than Those Who Use Tabs

The tabs vs. space soap opera continues. This time we have a good argument against tabs. 🔫




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


26th week of 2017

Permalink - Posted on 2017-06-27 19:00

News

ARKit Weekly

That’s how you recognise the beginning of an upcoming trend. 🤓 Check out the best ARKit showcases, articles, and links.

Development

Using SpriteKit to create animations in Swift

Woo-hoo! 🚀 Did you know that we can animate the content of an application using SpriteKit? Apple developers already use it in the memory debugger in Xcode. Now read the article and go try it out in your own application.

Statements, messages and reducers

An excellent ✨ and timeless article about code structuring. Check out a way to manage state that’s rather unconventional for our platform. Try to introduce the Reducers pattern to isolate stateful code units.

Swift 4 Decodable: Beyond The Basics 📦

Let’s be honest, how long did it take you to implement the basic Decodable and/or Encodable struct? Right, okay, but is it enough for your amazing yet complex application? If you want to challenge yourself and play with a Codable API a little more, this would be a good starting point.

Server-side Commands

Swift + servers = ❤️. Since Swift runs on Linux, the Swift Package manager is getting better and there are a plenty web frameworks for Swift to choose from. It’s time to start paying attention to best practices and patterns, like the Command pattern by Soroush Khanlou.

YOLO: Core ML versus MPSNNGraph

Do you remember the Real-time object detection with YOLO article from the 22nd week of 2017? Matthijs Hollemans now compares YOLO using the newest CoreML framework as well as the MPSNNGraph – simplicity vs. greater control. Which one to choose for your next iOS 11 application?

iOS: How to open Deep Links, Notifications and Shortcuts

It’s a great tutorial about deep links, notifications, and shortcuts. You should definitely check it out and integrate those methods into your own application.




Tools

Introducing fastlane precheck: Submit your app to the app store with confidence

A new Fastlane tool from Felix Krause and Fabric - say, “No more rejected metadata!” 🚀. precheck can automatically download your application’s metadata and see if it complies with App Store’s guidelines – within mere seconds 🤖.




Business

Why we’re betting against real-time team messaging

Yet another communicator for teams, but with a Twist. Are you tired of checking your conversations every minute? This article not only introduces a new, thread-focused communicator, it also makes a case against addicting, real-time messaging solutions.

Why Tim Cook is Steve Ballmer and Why He Still Has His Job at Apple

An interesting, but controversial, article about what happens to companies when they lose a visionary CEO. Apple is a prominent example of this. How does Tim Cook compare to Steve Jobs? Distance yourself from this matter for second and check out this unusual point of view.




Video

Made With ARKit

ARKit was one of the biggest announcements made at WWDC 2017. Developers from around the globe started playing with the framework right away – have a look at the outstanding things they created.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


25th week of 2017

Permalink - Posted on 2017-06-20 19:00

Development

Fixing Autocompletion on Mixed Objective-C and Swift Projects

Is your autocompletion not working in Xcode? You’re not alone! Actually, everyone has this issue. The only thing we were able to do until now was to restart the Xcode, reindex the project, or clear the DerivedData folder. But thanks to Miguel and Apple engineers at WWDC 2017, we can finally fix this issue! 🤓

What Not to Log When Remotely Debugging Mobile Apps

An application shouldn’t log sensitive data on a console or save it in plain text - everyone knows that. But do you know what those sensitive data are? Passwords, tokens, API secrets, and perhaps even others? You should definitely check it to ensure your application is in line with your local region’s regulations.​

Asset Catalog Improvements 🎨

If you were working (or sleeping) while the WWDC turned our development 360°, high five! 👔 Now is the best time to catch up and prepare yourself to use new abilities in 200%. The improved Asset Catalog aspires to be new centralized style source for our applications.

Do MVC like it’s 1979

It starts out innocently with little bits of MVC architecture’s history. This may seem as if it’s not a very popular topic because who writes MVC apps in 2017? (Oops, I do… 😇) But don’t judge a book by its cover. This article attempts to convince you that MVC can be a guideline for modern application architecture. Give it a try.

MemoryLayout

Long time no hear from Russ Bishop. But this gotcha can definitely come in handy whenever we happen to work with pointers. And it’s nice to have someone who’s been there.

DeviceCheck

🆕 Please welcome the long awaited API for identifying devices without the possibility to track users. Persist a tiny amount of data between restarts. No Uber-like hacks necessary.

Swift World: What’s new in iOS 11 — Vision

As you already know, computer vision and machine learning have huge potential. Things like image classification, face detection, text detection, and many others. Check the possibilities presented by the new Apple Vision framework and have fun with it.

What’s New in iOS 11 Notifications?

That’s what we call a great community! There’s always someone who has your back with these small but crucial new features.




Design

Functionality vs Emotions in Mobile Interface Animation

A case study of delightful design and seamless usability. It’s worth checking out, if only for the provided animation examples.

Using Apple as a Case Study to Predict the Future of UI

You should always aspire to be ahead of the curve. Check if you can prepare for upcoming trends by getting familiar with Apple’s changes.




Videos

Why We Climb

A short but surprising comparison – ideal for a coffee break. ☕️




Others

Speaks for itself

A cat’s life.. 😹




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


24th week of 2017

Permalink - Posted on 2017-06-13 19:00

First, a comment from the WeeklyCocoa editorial team – iOS 11 took over this week! One system to rule them all! Long live the king! 👑

News

Crypto and SSL Improvements in High Sierra and iOS 11

There’s no doubt, Apple cares deeply about user privacy and always enforces high security and cryptography standards. In iOS 9, they introduced App Transport Security (ATS), which enforced TLS 1.2 and a strong certificate. With macOS High Sierra and iOS 11, they are going a step further; TLS 1.3, LibreSSL instead of OpenSSL, and more.​

Apple’s new iMac Pro costs $5000, but is it overpriced?

The newest Apple desktop personal computer for professionals was announced at WWDC2017 last week – pricing starts from $4999 or as people noticed a kidney 😅. But maybe Apple has finally made a comparable device with a competitive price? You should check for yourself and tweet us your opinion!

xdebug, xtree, xobject and xnoid

If you write UI tests for iOS, you’ll love this – four new commands for Chisel which will improve your development. Give them a try!

Since it was only added to the master branch, there is no release yet. You have to clone the repository and modify the ~/.lldbinit file according to the instruction.

Thanks, Bartosz! 🍾

Development

iOS 11: Machine Learning for everyone

A deeper look into the CoreML, Metal Performance Shaders and Vision frameworks on iOS 11 – possibilities, limitations, and crashes.

Of course, our life would be much easier without Apple framework crashes but, you know us, being able to classify a picture of a kitty melts our hearts a bit. 🐈 If you want to know how CoreML competes with other machine learning tools, you should start here.

New rules following WWDC 2017

Shorter application names, App Store customer reviews, only up-to-date features and framework usage, and many other changes in the App Store Review Guidelines. Save yourself some time and catch up with the actual conventions before your application is rejected.

Exploring the new String API in Swift 4

Let John awaken your desire to migrate to Swift 4 and take advantage of all the long awaited features.

iOS 11: Notable UIKit Additions

If you don’t know it yet, you should check it out. Three subjectively picked, but worth appreciating, changes in the UIKit: UIStackView, UITableView and… we won’t spoil it for you.

Encoding and Decoding Custom Types

Check this tidy description of a new encoding and decoding API by Apple! 🍎 IMHO there is no better article about Codable than this official documentation, seriously. I hope it foreshadows a new era of official documentation quality. If you have anything interesting regarding this topic, let us know via e-mail. We’re waiting for your posts to shine. ✨




Design

iOS 11, Complexion Reduction & Apple’s New User Interface

Although Machine Learning and ARKit stole the show, design changes caused a stir from the very first moment they were announced. And just when it seemed that iOS 7’s UI revolution will stick around for some time, slowly but surely, Apple Music-like design began spreading across system applications. What is this Complexion Reduction really about? We highly recommend checking out the mentioned primer by Michael Horton.




Business

How to Make $80,000 Per Month on the Apple App Store

Do you have an application listed in the App Store? That offers in-app purchases? No matter the answer, you’re probably wondering – where does all of this money go?. 💸 Check out this article and share it with your loved ones to help save them some cash.




Video

‘Crack Marketing Team’ — Live From WWDC 2017 With Phil Schiller and Craig Federighi

A pretty good show with faces we hope to see every year. But what’s more important – a few answers you might seek and would have a hard time getting elsewhere.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


23rd week of 2017

Permalink - Posted on 2017-06-06 19:00

News

What’s New: Things that caught my eye

A short summary of the​​ ​WWDC 2017 Keynote and some of the new frameworks available on the iOS 11.

Xcode 9 beta Release Notes

Too long to read? These are our favorites: ⚡️💫

  • Swift code refactoring
  • Increase and decrease the source editor font with ⌘+ / ⌘-.
  • Dragging files between groups in the Project Navigator now moves the files in the filesystem and updates any associated SCM working copies.
  • You can run multiple instances of Simulator to speed up tests by running them in parallel.
  • Rewritten source editor.




Development

Xcode: Advanced Breakpoint Usages

A great overview of almost all breakpoint types in Xcode 8. Everyone can find something new – check them out to improve your debugging skills.

Introducing ARKit

Just a few hours were enough to prepare a ​​sneak peek of the new ARKit framework available on iOS 11.

Secure iOS application development

Knowing where the trap is—that’s the first step in evading it. ~Frank Herbert, Dune

Read it, accept it, make it a calling card of your quality. Don’t be ashamed if you see some of these issues in your existing application. We’re sure, your users will appreciate every security update.

Kick Your Manual Iteration Habit

Pavol makes attempt to convince us to think about our code in a wider perspective. To understand its purpose and boost it with a good use of built-in abstraction. With Swift, you can stop thinking about steps computer needs to perform to do what you told it to. Swap your loops with higher-order functions!

A deep dive into Grand Central Dispatch in Swift

Don’t feel ashamed, just dig into this extensive description of the Grand Central Dispatch framework. Look further than Dispatch.async with John. This should save you a lot of lower level coding with NSOperation.

Installing and using Kotlin from Xcode, Kotlin functions & Kotlin collections

From zero to Kotlin by Erica Sadun. Compare the Kotlin language syntax to Swift and give it a try in your Xcode. Yes, you read that right – Kotlin on Xcode.




Tools

Doctor Pretty

A pretty Swift printer aware of column size. You may wonder – why do I need this? I get it, I’ve been there, but then it captured my imagination. Even if the opportunities don’t, the implementation should inspire you.




Business

8 Bad Mistakes That Make Good Employees Leave

This one’s for your managers and leaders. Did you ever wonder why a particular excellent developer is leaving such a great company? Maybe your company is making mistakes you’re not aware of? “People don’t leave jobs; they leave managers” – read about eight really bad mistakes that make good employees leave.




Other

Oh no

Apple remembers your pets. 😹




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


22nd week of 2017

Permalink - Posted on 2017-05-30 19:00

Development

Man in the Middle iOS Attacks: The Danger of Relying on a Single Layer of Security

A great opportunity to remind ourselves that we should be grateful for Certificate Pinning and use it anytime we’re exchanging data with a server. There are also a few other possible ways to protect sent or received data.

Mixing Constant and Literal Strings

In every codebase, there is always room for improvement – especially with the endless possibilities Swift offers. No matter what you’re using for the network layer, you won’t avoid app specific constants. These hints will help you sleep better at night.

UIDebuggingInformationOverlay

We know this looks like some new tool but, believe me, this is another sweet piece of private API. I can clearly recall how many times we’ve debugged all this stuff with LLDB and Facebook’s Chisel. Save yourself that pain with a simple, two-step setup.

Real-time object detection with YOLO

Machine learning is the hottest topic right now. Google has recently said that artificial intelligence is already better than the human mind in the field of image recognition. This week, we take a look at the neural network which will point your kitten on a picture after just one look.

Should I use Viper architecture for my next iOS application, or it is still very new to use?

A few interesting answers from developers, who have had varying experiences. Whom do you agree with?




Design

Design for Fingers, Touch, and People, Part 1 & Design for Fingers, Touch, and People, Part 2

Did you know that “fewer than 50% of users hold their phone with one hand”? Go back to the past and explore the history of touch screens – how they used to work and what they are now. At the end, you will find out how users use their mobile phones and how to design an application for them.




Business

How much I’ve earned on the App Store

Do you identify with Stephen as much as I do? Developing a shameless application and releasing it to the App Store is our bread and butter. What then? This article answers the question about the money you can earn without the hype or market interest built by the App Store’s featured status, etc.




Other

MAKE XCODE GREAT AGAIN!

Who wouldn’t want one of these bad boy t-shirts? 😎

5 tips for better whiteboard awesomeness &5 MORE tips for better whiteboard awesomeness

Many times, I thought to myself – I’ll sketch it so everybody will see what’s on my mind. Let’s be honest though, most of the time, this doesn’t work very well. Sure, there may be digital tools for this but engaging in a good old analog brainstorm from time to time improves teamwork.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


21st week of 2017

Permalink - Posted on 2017-05-23 19:00

News

What’s new in Swift 4.0

What new features will be available in Swift 4? If you are as curious as we are, you can check it out now and try it with Xcode 8.3 (instructions included). Why wait for Apple to introduce a new Xcode version during WWDC?




Development

Swift one-line type-checking lasting 27s

What’s next?

Getting started with Xcode UI testing in Swift

This post is especially close to our hearts, mainly because we chose XCTest as our framework of choice to automate UI testing. Don’t be ashamed if you don’t have UI tests in your project. Start here, then dig into this topic with Joe Masilotti’s excellent blog and AutoMate to save yourself a lot of boilerplate code. 😎

Swift Tricks: Searching for Objects by Type

Have you ever tried to find a specific object in a collection by type? Tim Ekl found a nice way to do so and it just couldn’t be more Swifty. What’s more, remember that chaining higher order functions is incredibly readable but may hurt code performance. #weeklycocoa recommends taking a closer look at lazy.

Stored Properties In Swift Extensions

Magic 🎩 for anyone who seeks stored properties in an extension. Would you introduce it to your App Store application? Let us know on Twitter.




Design

Best Practices for Horizontal Lists in Mobile

You’ve probably seen a horizontal list in mobile applications with a varying usability quality. To avoid landing on the user experience blacklist, check these do’s and don’ts.




Video

UIKonf 2017

Thanks a lot UIKonf! We’re really pleased to see this new trend in uploading conference videos in the blink of an eye. ⚡️ Have a nice week watching all of these awesome presentations.

3D Touch: Bring Your Apps to a New Dimension by Meghan Kane

The why and how of integrating 3D Touch with your application. Searching for an effective way to popularise your app? I’ve heard 3D Touch is addictive – implement all the latest features, you won’t be disappointed.




Other

37 Simple Daily Behaviors That Will Immediately Free up Hours in Your Weekly Schedule

They’ll boost your productivity, step by step.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.


20th week of 2017

Permalink - Posted on 2017-05-16 19:00

Development

Experimental Swift

So we’re talking about a toy for big boys and girls here – Raspberry Pi. Yes, you heard me: iOS + Swift Server + Raspberry Pi. It seems trivial when reading Piotr’s post but the first thing I thought about was how to set up an environment?! 😱 Fortunately, Piotr has got us covered with a step by step guide through.

Back Buttons and Coordinators

A little bit late but we just couldn’t miss this one! As always, Khanlou did a great job with another article about the Coordinators pattern. It may seem like an edge case, nevertheless, it can happen to anyone and it consumes way too much time.

Protocols and MVVM in Swift to avoid repetition

Do you want to avoid repetitive code or move some of your code from a View Controller? You can do so in just a few simple steps. Grab your weapon to fight against MassiveVC – MVVM and protocols to the rescue!

Using lazy properties in Swift

John keeps a good pace on his new website. This week, he takes a look at a few ways to define lazy properties in Swift, and how different techniques are useful in different situations.

PSPDFGenerics

This is for all the dinosaurs: improving Objective-C codebases, in times of the Swift hype, is as challenging as mastering protocols.




Design

Basic Patterns of Mobile Navigation

Hamburger Menu, Tab Bar, Priority+ Pattern, Floating Action Button, Full-Screen Navigation, or Gesture-Based Navigation. Which navigation pattern to use and when? The strengths and weaknesses of each are described in this article.




Video

The Two Sides of Writing Testable Code by Brandon Williams

It may seem like just another reminder of the advantages of writing testable code – nothing further from the truth. With just the right amount of theory, Brandon will show you the complexity that may be hiding in your codebase. The refactoring of a seemingly simple method, which can be found in a whole lot of OOP projects, shows us how to rid the code of all hidden dependencies and how to make it stateless and functional-oriented.

A Neatly Typed Message: Improving Code Readability by Krzysztof Siejkowski

Finally, someone has pointed out that stacking abstraction becomes a readability cost after a rather brief period of time. And readability cost means maintenance pain for most of large codebases. A great lesson about how to estimate if that sweet enum or typealias is just a one-time use cost generator.




As always…

If you have something interesting to add about our technology, don’t hesitate to send it to us via e-mail.