Tech Stack

Now that we’ve completed the product development, design, and a handful of feedback cycles, we’re ready to figure out the inner workings and technical infrastructure that we’ll be using for the product.

Back-end API and Web Development

The back-end is the engine to your app. We make sure it’s always tested, fast, and reliable. Here are a few quick summaries into what languages / frameworks we use and why.

Ruby

Our love affair with Ruby has been almost 7 years now, and it’s our go-to language for web applications and simply API’s for our mobile apps. Unlike many agencies, we don’t live and die on Ruby on Rails, rather we’ll use a lightweight framework such as Sinatra or Cuba unless there’s a specific reason to use Rails. While Rails has a lot of awesome built-in things to it’s framework, it also has a lot of unnecessary things for a standard app, and especially for an API.

Golang:

We see Golang becoming the next ‘most popular’ language for web and mobile apps due to it’s innate ability to handle concurrency and it’s speed. It’s still very early for golang, even though it’s been a while since it was released by google. It definetely has a larger learning curve and takes a more sophisticated developer to use than Ruby, but that doesn’t necessarily mean it’s better. Most of the time we stick with Ruby because it’s much easier for the client to then build an internal team around a Ruby stack, but also because it allows us to get to market faster.

Node.js:

Node had a lot of hype a few years ago, but it’s starting to die down. Similar to most frameworks, it was talked about as the ‘next best thing’ and ‘much better than ruby’ but we find that it’s too garbled because of it’s still javascript at the end of the day. We use Node.js for some API’s, but mostly for real-time chat apps.

Front-end Web Development

Almost every modern Front-end of a web based application is going to be composed of 3 things, HTML, CSS, and Javascript. While there’s different flavors of each and different frameworks on top of them sometimes they will almost always compile into those 3 things. Here’s what we use for our apps:

Angular.js

Angular is a complete open-sourced Javascript client and server side web application framework. We use Angular as the framework for almost all of our web apps or dashboards. We picked it over ember.js simply because of preference, but we see Angular ‘winning the battle’.

Javascript

We write standard javascript for simple websites, otherwise it’s going to be apart of Angular. We consider ourselves experts in all things js!

HTML/CSS

It’s impossible to create a web based product without these internet bad boys!

Mobile App Development

We read all the same articles as you probably do about mobile. Many love to say “Mobile is dead” and “Apps are a thing of the past” but we (and many others…) expect to see more and more apps in the next few years.

The upcoming IOT (Internet of Things) revolution will need mobile apps to interface with the ‘things’, and there’s always going to be innovation in the mobile space. However, we do see the ‘traditional’ app changing and users only needing to download the ‘core’ of the app.

For example, how many times do you look at the “About Us”, “Terms of Service” “How it Works” or other pages for your favorite apps? Even things like “Login and Signup” are temporary pages for most apps.

Essentially, we see more web based functionality through mobile, simply because traditional native apps take a lot of space on the hard drive of mobile phones.

iOS App Devleopment

iOS Apps (The apple development platform) have been our specialty since we started on mobile way back in 2011. It’s the platform that we launched Ticket Scalpr on, our first client, and practically every single other app that we’ve created over the last few years. We’ve yet to start with android as the first or MVP, but that’s just standard practice in the mobile work. Everyone on our team has some model of an iPhone (we also have 3 android phones in the office for testing) and Patrick alone has 6 iOS devices (iPhone 5, 5s, 6,6s and an iPad!) to make sure we’re compatible on all device types.

Even though Android has more market share, iOS completely dominates when it comes to revenue per phone, as well as usage per phone. While we see this trend starting to diminish (the overall market % of revenue) we don’t envision any significant changes for the next 3-5 years.

Android App Development

Typically, after we see product market fit from our client’s iOS apps, or after a set amount of time (we suggest 3 months after the iOS launch) we will build and launch an Android app. The problem isn’t so much that “iOS is better than Android” but it really comes down to numbers. At the time of this writing, iOS users spend a significant amount more on apps than Android users, and we haven’t had a client whose primary phone is Android (yes, that’s no lie). For these reasons, we have yet to launch a digital business on Android, but always ‘follow up’ with it.

Android development is very similar to iOS in terms of how interacts with an API. Yes, it’s a completely different programming language and framework, and all the tools are different (Xcode VS. Studio) but the actual app itself isn’t too different. We find that these are the two major differences between iOS and Android Apps.

  1. Native Back Button: If you’ve never owned an android phone, but have used a friends, you’ll notice an arrow near where the circle button would be for an iPhone. This is used to go back a page, and is similar to the back button on the web. The one thing that developers need to decide on is the actual action that hitting the back button does, if it’s back to the main menu, or back to the previous page the user was on.
  2. Navigation Bar: The top bar in Android can sometimes do a variety of tasks, but also just looks different than iOS. Typically, in iOS it’s just the title of the screen and a back button, but it’s starting to evolve to allow for more screen space on content.

Overall, we’re excited to see where Android is headed. There is a lot of talk about ‘streaming’ of apps that show up in Google Search results (a lightweight version of the app) and other initiatives that parlay Google’s dominance in Search, so we’re excited to see where it goes!

Hybrid App Development

We don’t normally do hybrid apps, but when do, it’s Ionic

Typically, if we’re tasked to build an app for a client, we’re asked to do a native iOS app. It’s what we greatly prefer, and is the better fit for most startups. However, for some ‘utility’ type apps, B2B, or things that are ‘tap based’ that have limited functionality and the client would like for it be multiple devices and has a limited budget, then we suggest a Hybrid app.

The problem with Hybrid apps is the same since they were first introduced; it doesn’t “feel” like a native mobile app. The transitions aren’t smooth and developers can’t partake in the full suite of tools that native apps can. The Hybrid eco-system is getting better, but we still see it being a few years out (if at-all) that Hybrid apps will become the preferred method of making a 1.0

WordPress:

We are not wordpress experts, but we use it for all the blogs, and many websites for our projects. We just aren’t as familiar with it as many other agencies if tasked with doing a HUGE projects (1k’s of pages, etc, etc), but we can 100% get the job done if it’s a standard ‘wordpress’ site.