background preloader

Swift

Facebook Twitter

3D Touch: Bring Your Apps to a New Dimension. Episode 51 – Playground-Driven Development at Kickstarter · Swift Talk · objc.io. 0:06 Today we're joined by Brandon from Kickstarter once again.

Episode 51 – Playground-Driven Development at Kickstarter · Swift Talk · objc.io

Together we'll build an interface in a playground and then move it into a framework that can be used in an actual application. At Kickstarter, the developers only construct a basic view hierarchy in Interface Builder, whereas all of its styling is done in a playground. 0:47 We've prepared a view controller that will serve as a sign up form. It features a header, three input fields, and a submit button, all contained in a root UIStackView: 1:23 We import PlaygroundSupport and set the view controller's view as the playground's live view in order to immediately see any changes we make: let vc = MyViewController()PlaygroundPage.current.liveView = vc Styling the View Controller 1:36 Our first improvement of the view controller is to style the submit button, because it's barely visible now.

Self.submitButton.backgroundColor = .blueself.submitButton.layer.cornerRadius = 6self.submitButton.layer.masksToBounds = true. Krzysztof Zabłocki - Metaprogramming in Swift talk. The Two Sides of Writing Testable Code. There are precisely two things that make functions fully testable: the isolation of effects and the surfacing of ‘co-effects’.

The Two Sides of Writing Testable Code

We will explore a bit of the formal theory behind these two sides, and show how they lead to code that can be easily tested. We will also show how we do this at Kickstarter by diving into our recently open sourced codebase. Introduction My name is Brandon Williams, I’m a developer at Kickstarter. Today I’m going to be talking about testing. We recently open sourced all our code at Kickstarter, and the things I’m talking about today are things that we do at the company. Why Test Code I’ll say why I test code. Testing is where I’ve truly documented how I expect the application to work, and where I’ve thought through edge cases and subtleties.

Document Indexing and App Search in iOS. There are thousands of new applications appearing on the App Store daily and even if the user has downloaded an app, it can easily be forgotten.

Document Indexing and App Search in iOS

As a solution to this problem, at Zalando, we use the App Indexing feature - making it more accessible and recognizable in search. Introduction My name is Katrina Gridina, and I am a software engineer at Zalando in Berlin. Machine Learning. The news says machine learning is the Next Big Thing.

Machine Learning

But machine learning is happening way over there, on servers, in universities and in big companies with big data. What is it really, and what does it mean for over here, on mobile, in Swift? Are we –gulp– legacy tech? This talk will present a fast, concrete, down-to-earth survey of machine learning, from the perspective of iOS & Swift, summarizing the main techniques, tools, and learning resources. It’ll outline how TensorFlow is like AVFoundation, how model training is like UI design, and how you can use iOS to gather big (enough) data and to exercise modern models using fast native code.

Functional Programming is taking over UIs with Pure Views. The last couple years have seen a huge improvement in how to UIs are developed by using Purely Functional Views.

Functional Programming is taking over UIs with Pure Views.

In functional programming a “pure function” is one that when run, returns a value but does not change anything outside its scope (also known as side-effect free function). This greatly reduces the cognitive load and permutations in applications so that they have a massive reduction in bugs (see case study), easy to understand, compose together and incredibly stable. David Nolen has one of the best explanations for this type of pattern of UI development ƒ(d)=V. It’s a function that receives data as its input and returns a view. Boost Smooth Scrolling with iOS 10 Pre-Fetching API. In a previous post, we explored some common strategies to achieve smooth scrolling in our iOS mobile apps.

Boost Smooth Scrolling with iOS 10 Pre-Fetching API

The main goal of applying those strategies was to avoid choppy scrolling, a common issue that negatively affects the user experience. To help developers with such a task, Apple made some very useful changes to UICollectionView in iOS10. But before reviewing this newly introduced functionality, let’s start by examining what prompted the need for them. Everyday Reactive. In this talk, we’ll walk through some practical uses of reactive programming in app development, using examples from my daily experiences.

Everyday Reactive

We’ll explore tips and tricks for determining when reactive programming can be a potent tool, as well as scenarios to avoid that might threaten code quality and performance. The talk will focus on concepts in reactive programming, the code will show off different Swift reactive implementations. My name is Agnes. I’m here to share with you some tips, tricks, and things to avoid that I faced during my time learning reactive programming. I’m an iOS developer at Ustream, which means I’m working on apps people use to watch and broadcast videos. Using protocol compositon for dependency injection - Krzysztof Zabłocki.

I like using composition and dependency injection, but when you need to inject each entity with multiple dependencies, it can get cumbersome fast.

Using protocol compositon for dependency injection - Krzysztof Zabłocki

As the project grows and you need to inject more dependencies into your objects, you will end up having to refactor your methods a lot of times, as we all know Xcode doesn’t help with that. There is a more manageable way. Problem Let’s say you have an object that starts needing an image provider, so you write its init something like that: This is easy and convenient + it allows us to swap them it in tests. As the application grows you will need to forward through more dependencies, each time requiring you to: Common unit testing techniques on iOS ~ Marisi Brothers. TL;DR - Most if not all unit test cases on iOS can follow the same commonly known pattern: GIVEN a set of initial conditions, WHEN something happens, THEN something is expected.

Common unit testing techniques on iOS ~ Marisi Brothers

The Recipe for Singletons Removal - Alberto De Bortoli. We all went through it, am I right?

The Recipe for Singletons Removal - Alberto De Bortoli

You join a new company, you jump on the new codebase, you find lots of singletons, get used to them, become friend with them, but after some time you realize it’s time to terminate the friendship. For a greater good. And for better testing, of course. And for proper dependency injection, of course. And for your own sanity, of course. After years in this field you should well know that singletons are bad, if you don’t… well… argh, I have bad news for you 🙃, but also a few articles, yes. A Quick Look at Semaphores in Swift □ – Swiftly Swift – Medium.

First of all, if you’re not familiar with the Grand Central Dispatch (GCD) and Dispatch Queues, please head over this awesome article from AppCoda. All right! Time to talk about Semaphores! Introduction. Refactoring singleton usage in Swift · Jesse Squires. In software development, singletons are widely discouraged and frowned upon — but with good reason. They are difficult or impossible to test, and they entangle your codebase when used implicitly in other classes, making code reuse difficult. Most of the time, a singleton amounts to nothing more than a disguise for global, mutable state. Everyone knows at least knows that is a terrible idea. However, singletons are occasionally an unavoidable and necessary evil. Protocol oriented image picker - The.Swift.Dev. Using the UIImagePickerController is pretty straightforward. The problem starts, when you have multiple controllers, and you need the picking ability in both of them. You can make a parent class with the core functionality, but that's old-school for a Swift developer, isn't it?

The final product I imagine my protocol oriented image picker api something like this. The problem. Perfect Forwarding — Content app extensions in iOS 10. Thinking in RxSwift - Code in a suit. It has been a long time since my last post. I wanted to prepare an article which will cover the theory which stands behind Observable and show the usage on real, not dummy example. It has turned out it was not trivial task as I thoguht The article is split into 2 parts. At the beginning I try to explain what is the Observable and how should you treat them. Testing an Untested App. In this CMD+U Conference live coding demo, Michael May shows techniques for starting to test code which has no existing tests. Introduction We’ve seen some amazing talks today about the different types of testing that you can do.

I want to take a slightly different stance and talk about how you apply those techniques when you have a pre-existing code base which has no test. For the last few years, I’ve worked on projects exactly like that every time I’ve joined a new company. There has been an existing code base and the last four projects had no tests when I have arrived. The Yin and Yang of Unit Testing in iOS ~ Marisi Brothers. TL;DR - Sometimes it's more suitable to test the interface and other times the implementation of a system. Smooth Scrolling in UITableView and UICollectionView. Testing in Swift: Protocols & View Models. Property-Based Testing with SwiftCheck. Unit tests are a challenge to write. Request Behaviors. When firing network requests, there are often many side effects that need to take place. Side effects are poison for testability, however, and may vary from app to app and request to request.

#Pragma Conference 2016 - Fabio Milano - 'I have a framework idea' - Repeat less, share more. Architectural Superpowers. We usually hear about intangible or difficult to measure benefits of implementing a good architecture. I would like to prove to you that the benefits are far more mundane. Unowned or Weak? Lifetime and Performance. Published on October 27, 2016. Incremental Swift. Using Swift in AWS Lambda – Justin Sanders – Medium. Recently Apple open sourced the Swift compiler and standard library. Building a User-Centric Security Model in iOS Applications. Swift, Java, Node.js, or Ruby? The Advantage of Server-side Swift. The addition of support for Swift as a server-side programming language makes it possible to use not just the same language on client and server, but also to reuse APIs and code. This try! Test Your App On Any Device You Want, Without The Hardware From the Command Line — MobDesign. Double check that all the settings for your test bundle are to your liking and click "Finish".

Build your test bundle. Extending Xcode 8. I create iOS apps - is RxSwift for me? Building Reactive Apps with Realm: Episode 1. Turning UIKit Inside Out. John Sundell, Mobiconf 2015. Ash Furrow, Mobiconf 2015. A composable pattern for pure state machines with effects (draft v3) The Easiest Core Data - Alberto De Bortoli. Closures Capture Semantics, Part 1: Catch them all! – Crunchy Development. Making burritos with Swift (or How To Mock Classes You Don’t Control) — COBE. Using Stack Views in Table Cells.

Swift/OptimizationTips.rst at master · apple/swift. How do I build a Network Layer. Grokking Lazy Sequences & Collections. Real World Flux Architecture on iOS · [Thinking inside a large box]; Xcode Extensions — Appnroll Publication. Build Tic Tac Toe with AI Using Swift — Swift Programming. Neural Networks in iOS 10 and macOS. Protocol oriented loading of resources from a network service in Swift ~ Marisi Brothers. Practical Protocol-Oriented-Programming. Functional Programming, Abstraction, and Names. Protocol-Oriented-Networking in Swift. Russ Bishop - Functors, Applicatives, and Monads in Plain English. SOLID Principles for Android #2: Open/Closed Principle, by Donn Felker.

Functional Reactive Intuition - Swift edition. Seven Swift Snares & How to Avoid Them - Swift. Swift build time optimizations — Part 2 — Swift Programming. Profiling your Swift compilation times. 15 Tips to Become a Better Swift Developer - Savvy Apps. Mobile App Testing - Tips and Tricks. Reader Submissions - New Year's 2016. Swift Functors, Applicatives, and Monads in Pictures. Failable initializers, revisited · Jesse Squires. "Weak, Strong, Unowned, Oh My!" - A Guide to References in Swift — KrakenDev. Playing with UIDynamics in iOS 9. Swift A Day. Events. That One Optional Property. VisualKit: UI Framework – Jobandtalent Engineering.

Service-oriented AppDelegate – iOS App Development – Medium. Container View Controllers. Architecting for Features. Swift Tricks: Searching for Objects by Type - don't panic. Writing Your UI Swiftly. The challenge of implementing iOS share extension for end-to-end encrypted messenger. A Smart Way to Manage Colour Schemes for iOS Application Development. Enums as configuration: the anti-pattern · Jesse Squires. System Level Breakpoints in Swift.

#24 Architecture Wars – A New Hope – swifting.io. Hiding Your Action and Share Extensions In Your Own Apps. Useful details about underscore keyword in Swift. Swift: UserDefaults protocol – Swift Programming – Medium. #27 Localize your strings swiftly – swifting.io. Composite Validators - Hot Cocoa Touch. Speeding up Development Build Times With Conditional dSYM Generation. Preparing Your iOS App for Extensions - RaizException - Raizlabs Developer BlogRaizException – Raizlabs Developer Blog. iOS Security 101. Reactive Programming with RxSwift. ReactiveCocoa and MVVM, an Introduction · Sprynthesis. MVVM-C In Practice. Coordinators with Storyboards — Apokrupto. Storyboards and Their (Better) Alternati... Coordinators Redux. Swift Type Aliases: Use Early and Often - Artsy Engineering. A Protocol-Oriented State Machine for Layout Constraints.

A quick look at UIViewPropertyAnimator — Swift and iOS Writing. Objc.io – Swift Talk – Episode 3 – Loading View Controllers. iOS Cell Registration & Reusing with Swift Protocol Extensions and Generics. Three tips for concise Swift using the Guard statement.