Getting Started with Server-Side Swift Using the Vapor Web Framework Getting Started with Server-Side Swift Using the Vapor Web Framework

Ever since Apple open-sourced Swift, the developer community saw a greater potential for the language than mere client-side iOS development. That community envisioned a language that could become more universal and cross-platform, as evidenced by the emergence of server-side Swift powered by the Vapor Web Framework.

Why code your back-end in Swift?

One of the most burning of questions is, "Why have Swift on the server in the first place?" True, we already have great and well-established server frameworks out there, like Node.js and Rails, so why invest in a platform that may not be as mature as those other platforms? You get a lot of added benefits, for starters.

Leveraging the same technology on your backend as on the iOS client means you can use the same team on both ends, adding greater knowledge transfer and knowledge redundancy and lowering cost-of-maintenance through additional resources.

Having a Swift back-end and front-end means that you can divide feature development according to features instead of technology stack. While one developer will own the entire registration process, another developer owns the entire activity feed feature—that is, you get vertical rather than horizontal delegation and ownership.

Swift has amazing potential on the server, and to be an even better language for server-side development Swift needs great low-level APIs common among server frameworks. The Server APIs project will provide core capabilities in areas such as networking and security, so Swift programs no longer need to rely on platform-specific C libraries frequently to provide this functionality. As a result, developers will be able to create frameworks and server applications using pure-Swift code, without the need to also have systems programming skills and knowledge of multiple platforms. (Source:

Getting Started with Server-Side Swift, Using Vapor

While it's still early days for server-side Swift technology, Vapor is actually one of three emergent server-side Swift frameworks, with the others being Perfect and Kitura. Perfect was one of the first Web server toolkits for Swift, and Kitura (as featured during an Apple 2016 WWDC Server session) is backed by IBM. My framework of choice for this tutorial is Vapor.

Vapor is a modern server-side platform using HTTP or Web Sockets with some claiming that it is almost 100 times faster than other comparable Web frameworks, such as Ruby and PHP. 

Read the rest of my article, exclusively on ProgrammableWeb

iOS 10 Series: Creating VoIP Apps with CallKit iOS 10 Series: Creating VoIP Apps with CallKit

One of the most distinguished features to come out of Apple’s last WWDC is the ability for third-party communications apps, like Skype, Viber, and WhatsApp, to tap into the system level and allow users to interact with incoming calls on the same level of intimacy as regular phone calls. This is possible thanks to the new iOS 10 API, CallKit, developers who are working on VOIP apps can now integrate seamlessly into the phone UI and provide a more native and intimate experience. But what does that mean?

Read More

When Agile's "Deliver Working Software Early" Doesn't Work When Agile's "Deliver Working Software Early" Doesn't  Work

One of the pillars of agile methodology, is in advocating that software is released and delivered *early & often*, to users and stakeholders. The premise is that by having the software in the hands of one's intended customer base early on, affords the startup with the ability to find /changes early, when they are easier to make/, according to Stellman, Andrew. “Head First Agile.”

Read More

The 3 steps to being a “lean’ startup The 3 steps to being a “lean’ startup

In the early stages of developing a startup, running capital is generally scarce,  and its pivotal that you as a founder, and your co-founder, start the process of conception, development and fund-raising in the leanest possible way. 

Without the ability to pay your salaries, and most likely bootstrapping your startup until you gain some momentum, choosing the right paths will ensure that you are able to sustain your startup in reaching the critical MVP goal, and positioning yourself to presenting your product to potential investors, without having to cease development. 

Read More

What is Differential Privacy? What is Differential Privacy?

One of the notable concepts to emerge from Apple’s World Wide Developers Conference in San Francisco this year, has been the notion of differential privacy. As Wired puts it Differential Privacy is the “…statistical science of trying to learn as much as possible about a group while learning as little as possible about any individual in it.”

Read More

Apple TV: Should You Create An App for the Little Black Box? Apple TV: Should You Create An App for the Little Black Box?

The Apple TV has been around for quite some time. In fact, it was introduced back in 2007, when the very first iPhone was released.

But, unlike the iPhone, the Apple TV had a back-seat status of being more of an Apple hobby. And despite numerous incremental improvements over the years, this little black box had still not received much attention from Apple.

Read More

Top 5 Startup Metrics: What Founders Should Be Tracking Top 5 Startup Metrics: What Founders Should Be Tracking

In my latest post for @thinkApps, I discuss the top five startup metrics that founders and product managers should measure and analyze.

When developing a new web or mobile app, you generally start off with some preconceived notions about features, as well as user needs and behavior.

But let’s face it, you don’t really know how users will react. 

That’s why you begin with a hypothesis and try to either prove or disprove it, in order to minimize the risks associated with launching a new product. 

One way to minimize these risks while also gaining a bit of traction is working towards a minimum viable product (MVP). You focus on building out just the core features and then release them out in the wild as your first version.

But once you launch, how do you really know whether the market has taken a liking to your product or not? This is where analytics come in.

Benefits of Analytics

Analytics allow you to collect and analyze large chunks of data from your users, which provide you with insights into what they really think of your app. 

The weeks of labor and sweat that go into building your features get validated (or not) through metrics. 

It’s a way of grading the performance of your app’s features, along with how well your customer acquisition strategies are faring. By gauging qualitative and quantitative data, you can constantly improve your app experience for users.

In this post, we’ll examine the Top 5 Startup Metrics. We’ll also discuss many of the analytical tools out there that startup founders and product managers might want to use.

Focus on Lean Analytics

Before we dive into the top five metrics, we wanted to emphasize that, as a startup founder or early employee, your time is precious, and statistics don’t always present a complete picture. 

Therefore, you need to focus your resources on tracking the metrics that truly reflect the performance and progress of your app. 

Determining which of those metrics you should track is quite simple: they need to be comparative. That is, you don’t want to simply monitor absolute numbers, but instead track conversions from one period to another.

According to Alistair Croll and Benjamin Yoskovitz, authors of Lean Analytics, startup founders must avoid falling into the trap of focusing on vanity metrics.

The authors point to one type of vanity metric: total sign-ups. It sounds really good, makes you feel good, and the values do increase over time. But, they don’t tell you how active the users are. 

Looking at total active users is a slightly better metric but is still based on absolute numbers as opposed to ratios. 

We can therefore deduce that percentage of active users is a great type of metric to track, as it allows for a time-over-time comparison of how your app is doing. This is what Lean Analytics calls actionable metrics. 

There is a caveat, however, that comes with comparative metrics, which is the need to establish causality. That is, did some action on your part cause this shift in the ratio? We hope to explore this topic further in a future post.

For now, with actionable metrics in mind, let’s explore our first of the top five startup metrics: cohort analysis.

Read the rest of my column, exclusively at ThinkApps.

Beta Testing: The Ultimate How-To Guide Beta Testing: The Ultimate How-To Guide

In my latest article for @thinkapps, I'll be answering a few key questions on beta testing, the difference between alpha and beta testing, and how startups can calibrate a beta testing strategy for success

What Is Beta Testing?

Beta Testing is the last phase of tests your web or mobile app goes through before it gets into the hands of your potential users. 

To put it another way, it’s a final opportunity for you as a startup founder or product manager to catch bugs and improve the UX (user experience) before your app is out in the wild.

Beta Testing vs Alpha Testing

Alpha Testing is considered a form of “internal acceptance testing” conducted in-house by developers and testers.

Unlike the alpha phase, the focus of beta testing is not on designers or developers who were involved in creating the app, but instead on consumers or businesses that are the target user base for the product.

Some projects do invite external users as early as the alpha phase, but it’s generally in a more limited capacity than during the beta phase.

The simulated environment of alpha tests can’t account for all combinations of conditions, whether they be network conditions, device variations (screen sizes/resolutions, different device or OS versions), or use cases not thought of during in-house testing. 

It’s not just the concept but also the execution that will ultimately lead to a great product, and beta testing puts stress on your product differently than the in-house testing of the alpha phase.

Alpha testing has traditionally been said to be more rigorous and systematic, with a reliance on continuous integration tools. But that doesn’t necessarily mean that beta testing should be relaxed. 

When the product graduates to the beta testing phase, continuing the team’s systematic and controlled strategy is just as vital as it was during the alpha.

What Are the Benefits of Beta Testing?

Beta testing provides users early access to a new app (or to new features of an existing app). The process, in turn, provides startup founders and product managers with the opportunity to iron out any problems that weren’t caught during the alpha phase.

Crowdsourcing your testing to hundreds or even thousands of real users in real environmental conditions allows for a greater net to catch any glitches or edge-cases that may not have been spotted previously. 

Identifying and fixing those issues during the beta phase can reduce your development costs significantly, in addition to helping you avoid a potential PR crisis associated with a bad public launch.

Beta testing also provides customer validation beyond technical glitches, providing startup founders and product managers with feedback and analytics as to whether to include specific features.

Read the rest of my article, exclusively on ThinkApps