Skip to main content


Showing posts from 2015

Tailor. Static analyzer for Swift.

Tailor supports Swift 2 out of the box and helps enforce style guidelines outlined in the The Swift Programming Language, GitHub, Ray Wenderlich, Jamie Forrest, and Coursera style guides. It supports cross-platform usage and can be run on Mac OS X via your shell or integrated with Xcode, as well as on Linux and Windows.

Tailor on GitHub

Android versus Java 8

Compared to the latest Java beeing used on server-side, Android is stuck in the 80ies. Word!

But wait, there is Kotlin!

Cited from John N.

Server-side Swift - Perfect

One language to rule them all.
Wouldn’t it be amazing if you could develop every aspect of your apps, front and back end, all using Swift™? We think so. That’s the vision behind Perfect. Perfect is the first enterprise-grade web server and web toolkit for the Swift programming language.

If you’re already developing in Swift and you need backend server software, Perfect eliminates the need to choose and learn a backend language by allowing you to use Swift for all your coding.

Swiftline is a set of tools to help you create command line applications - using Swift

Swiftline is a set of tools to help you create command line applications. Swiftline is inspired by highline.

Swiftline can be divided to three main parts:

Colorize: Helps adding colors to strings written to the terminalAsk , Choose and agree: Easily create prompt for asking the user more infoRun: A quick way to run an external command and read its standard output and standard error.


threadingText - jQuery Plugin to enable HTML to allow thread text as known in Adobe Illustrator.

threadingText is a JavaScript jQuery plugin to enable thread text in HTML. With a responsive web design and dynamic content using thread text is hard to achieve; here is where threadingText comes into play.

The jQuery plugin threadingText provides a nice way of dynamically associate and fill HTML in pre-defined text containers and cut overlapping text with a specified ending symbol (default is " ...") or create new text containers according to a specified prototype text container if text would exceed provided space.

The implementation uses a binary text length search to divide the HTML among the text containers provided. While doing so it tries its best to repair any HTML tags beeing broken while threading the HTML in the text containers.

Additionally many code hooks are provided, where you can interfere in the layouting process and adjust the results in any way.


Has iOS 8 shipped Android Intents for iOS?

Intents and Extensions

I have been focused primarily on the Android platform for about 5 years, so the Intents framework is pretty much a part of my DNA at this point. When Twitter went aflame with “iOS has Intents! #WWDC” tweets during last week’s keynote, I sat up and took notice. Could it be? What follows are the things I have observed about what the two frameworks now have in common, and where they divide.

Wires Are Obsolete

App Extension Programming Guide

Starting in iOS 8.0 and OS X v10.10, an app extension lets you extend custom functionality and content beyond your app and make it available to users while they’re using other apps or the system. You create an app extension to enable a specific task; after users get your extension, they can use it to perform that task in a variety of contexts. For example, if you provide an extension that enables sharing to your social sharing website, users can use it to post a remark while surfing the web. Or if you provide an extension that dis…

Android Fragmentation Visualized - August 2015

Fragmentation is both a strength and weakness of the Android ecosystem, a headache for developers that also provides the basis for Android’s global reach. Android devices come in all shapes and sizes, with vastly different performance levels and screen sizes. Furthermore, there are many different versions of Android that are concurrently active at any one time, adding another level of fragmentation. What this means is that developing apps that work across the whole range of Android devices can be extremely challenging and time-consuming.

There is also a nice comparison with iOS!


App Transport Security - iOS 9

App Transport Security is a feature that improves the security of connections between an app and web services. The feature consists of default connection requirements that conform to best practices for secure connections. Apps can override this default behavior and turn off transport security.

All connections using the NSURLConnection, CFURL, or NSURLSession APIs use App Transport Security default behavior in apps built for iOS 9.0 or later, and OS X v10.11 or later. Connections that do not follow the requirements will fail.

App Transport Security Technote

When you are aware of the risks you can still completely disable ATS for your app by editing the Info.plist:


To have a bit more of security you could define exceptions from the exceptions and apply ATS to specific domains only:


Google Protocol Buffers for Swift

What are protocol buffers?

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.

Developers Google
Protocol Buffers with Spring


An implementation of Protocol Buffers in Swift.

Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. This project is based on an implementation of Protocol Buffers from Google.


tvOS SDK: An iOS Developer’s Initial Impressions

Chris Wagner and the rest of the Tutorial Team have been digging into the tvOS SDK and are already hard at work preparing some tutorials on tvOS (stay tuned!), but to tide you over in the meantime, Chris Wagner wanted to share my initial impressions of tvOS from an iOS developer’s perspective.

TVML AppsCustom Apps

Ray Wenderlich
Apple TV Markup Language
TVMP Catalog Sample Code

Mobile Backend as a Service: Parse and AWS

AWS Mobile Hub
AWS Mobile Hub is the fastest way to build mobile apps powered by AWS. It lets you easily add and configure features for your apps, including user authentication, data storage, backend logic, push notifications, content delivery, and analytics. After you build your app, AWS Mobile Hub gives you easy access to testing on real devices, as well as analytics dashboards to track usage of your app – all from a single, integrated console. runs on AWS
Amazon Video
Focus on creating amazing user experiences and forget complex infrastructure. Instantly add a powerful cloud database, push notification services, and analytics tracking to your app. Choose from over thirteen native SDKs for mobile, desktop, and IoT devices and discover all that Parse has to offer.

BTW: Parse is dead :(

Carlos - flexible and powerful cache layers in your application

Carlos is a small set of classes, functions and convenience operators to realize custom, flexible and powerful cache layers in your application. By default, Carlos ships with an in-memory cache, a disk cache and a simple network fetcher(disk cache and network fetcher are inspired by HanekeSwift). With Carlos you can: create levels and fetchers depending on your needs, either through classes or with simple closurescombine levelstransform the key each level will get, or the values each level will output (this means you're free to implement every level independing on how it will be used later on). Some common value transformers are already provided with CarlosApply post-processing steps to a cache level, for example sanitizing the output or resizing imagesreact to memory pressure events in your appautomatically populate upper levels when one of the lower levels fetches a value for a key, so the next time the first level will already have it cachedenable or disable specific levels of y…

Reverse Engineering iOS

Reverse-Engineering iOS Apps: Hacking on Lyft Conrad covers many concepts & tools that can used to reverse-engineer existing apps, as well as debug other libraries and even your own code. He even demonstrates the art of reverse engineering on Lyft’s iOS app, injecting code into it and inspecting its network traffic. Using Conrad’s techniques, you can expose the code behind any app on the App Store.
Reverse-Engineering Lyft (1:44) Peeking into Lyft (2:48) Inspecting Network Traffic - Charles Demo (4:08) Injecting Code into Apps - Cycript Demo (7:44) Decrypting Executables - dumpdecrypted Demo (11:28) Analyzing the Executable - IDA Demo (13:47) Finding Lyft’s URL Scheme (18:23)

iPhone +35%, but iPad -18%

Apple verkaufte 47,5 Millionen iPhones, ein Zuwachs um 35 Prozent im Vergleich zum Vorjahreszeitraum.
Nach Angaben der Investment Bank Canaccord Genuity erzielt Apple 92 Prozent des operativen Gewinns der gesamten Smartphone-Branche.
In dem Juni-Quartal begann Apple die Apple Watch auszuliefern, sein erstes neues Hardware-Produkt seit dem Start des iPad im Jahr 2010. Um dem Wettbewerb keinen Vorteil bei dieser neuen Produktkategorie zu verschaffen, würden hier keine Verkaufszahlen veröffentlicht, hatte der Konzern erklärt. 
Dagegen brach der iPad-Umsatz gemessen an den Stückzahlen um 18 Prozent ein.

Record UI Tests and generate Swift code automatically - run UI Tests from the command line

Apple announced a new technology called UI Tests, which allows us to implement User Interface tests using Swift or Objective C code. Up until now the best way to achieve this was to use UI Automation. With UI Tests it's possible to properly debug issues using Xcode and use Swift or Objective C without having to deal with JavaScript code.

Launch the tests from the CLI.

Felix Krause
UI Testing via Shell (GitHub)

Open Google Maps from your iOS app - Google SDK

OpenInGoogleMapsController is a class that makes it easy to build links to open a map (or display Street View or directions) directly in Google Maps for iOS. Rather than creating URLs by hand, you can create map requests using Objective-C classes and types, so you can take advantage of all the type-checking and code hinting you've come to expect from Xcode.

My favorite feature about this utility is that it supports a number of fallback strategies. If, for instance, you want to open up your map request in Google Maps, but then fallback to Apple Maps if the user doesn't have Google Maps installed, our library can do that for you. On the other hand, if it's important that your map location uses Google's data set, you can open up the map request in Google Maps in Safari or Chrome as a fallback strategy. And, of course, it fully supports the x-callback-url standard, so you can make sure Google Maps (or Google Chrome) has a button that points back to your app.



Launching Crashlytics Swift Support

When Apple introduced Swift, their new programming language, at this year’s WWDC, like you our engineers didn’t waste any time and dove in to see what it was all about. After spending the past few months testing out support in our developer preview, we’re excited to announce Crashlytics official support for Swift!

Tophersteller setzen deutlich weniger Tablets ab - Phablets erobern den Smartphone-Markt

Im vierten Quartal 2014 lief es für vier der fünf größten Tablethersteller schlecht: Die Absätze gingen teilweise deutlich zurück.
Apples Absatzzahlen sinken um 17,8 Prozent von 26 auf 21,4 Millionen, bei Samsung schrumpfen die Tabletauslieferungen um 18,4 Prozent von 13,5 auf 11 Millionen Geräte. Asus wurde statt 4 Millionen Tablets nur noch 3 Millionen los.


In Zeiten, in denen Smartphones immer größer werden, greifen mehr und mehr Nutzer zu Phablets. Diese Geräteklasse soll schon bald ein deutlich höheres Wachstum verzeichnen, als die normalen Smartphones mit einer Größe von bis zu 5,5 Zoll.


Nobody Knows What an iPad Is Good for Anymore

When Apple unveiled its tablet, the value proposition was relatively straightforward. At that time, you had your iPhone 3GS with its tiny screen, and your MacBook with its two-hour battery life. Those products left a nice big swath of casual use cases in-between for a third device to take care of. And that’s exactly how Steve Jobs justifi…

Comcast - Automatic Testing of instable network connections

Comcast improves your test coverage by letting you simulate shitty network connections so you can build better systems.

Testing distributed systems under hard failures like network partitions and instance termination is critical, but it's also important we test them under less catastrophic conditions because this is what they most often experience. Comcast is a tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets.

$ comcast --device=eth0 --latency=250 --target-bw=1000 --packet-loss=10%