Blog

Insights about the app design and development ecosystem.

Tools Technical Opinion DevOps Development Back-end

What really annoys me about Django migrations

Automated database migrations have been a convenient way of dealing with schema changes for a long time in Django. It’s been only 3 years since migrations have been incorporated into Django but South had been the de-facto solution since 2008.

The same way an ORM allows us to forget about SQL when writing queries to the database, migrations make sure we don’t write a single ‘ALTER TABLE’ in our schema changes. Some may argue that’s bad: we “lose control” over a critical part of our infrastructure, we don’t know how to write SQL anymore when needed, we’re not sure how that operation is really translated into SQL, etc, etc. Ok, these points are actually valid. However, Django migrations module is more than just a way of automatically generating and applying SQL statements, it’s also a transparent API to write your own database changes in Python. It comes with wheels for those who need it (or trust enough) and tools for those who like to get their hands dirty.

Continue Reading

Opinion Development

What is Serverless all about?

Serverless. The new hype buzzword is taking over the development universe, promising big savings in infrastructure for applications and less deployment headaches to developers. In an agile world, shipping scalable software with budget constraints has become a big puzzle: one that Serverless may solve.

Today I’m going to give you an overview of its history, basic concepts, providers, frameworks, benefits and drawbacks. One thing, though: personally, I don’t like the term Serverless, as it was coined by the Serverless Framework, but now it stuck and everybody is using it. What can I do?

Continue Reading

Tools Mobile

Breakpoints: Debugging like a Pro

When I started as an iOS developer, my biggest problem was with app crashes, that’s because I really didn’t know how iOS, Swift, and Objective-C worked. Back then, I wrote a lot of bad code, not worrying about memory usage, memory access, ARC or GCD. That’s simply because I didn’t know about that stuff. I was a beginner, for God sakes.

Like most beginners, Stack Overflow community taught me a lot about “doing things the right way”. I’ve learned a lot of tricks that helped me improve my work process. In this article, I’ll share some of them about the most important tool used in this learning process: the breakpoints!

Continue Reading

Development Design

JPG, PNG and SVG on the web: A beginner’s guide

Nowadays, images are an indispensable part of the web. However it wasn’t always like that. Only in 1993 the Mosaic browser would introduce images along with content in web pages. Some formats, like GIF and JPEG, already existed in that time and others like PNG and SVG, would only appear in the 90s. Images are used for multiple purposes, like showing pictures, branding, illustrations, charts and many other things.
Continue Reading

Business About Us

How much does it cost to build an app?

I’ve been running a mobile and web design and development company for more than 3 years now, and – as also the lead of sales – I often hear the following question: “I want to build Uber (or WhatsApp, Airbnb, etc), but a bit different. How much would it cost?”. Every time I hear that question (and I’ve heard it A LOT) I feel the urge to answer: “Considering that Uber raised $3.5 billion dollars, and at least 5% of their funds were focused on its technical infrastructure (apps, servers, websites, data centers, etc), your app should cost something around $350 million USD”.

Continue Reading

Technical Opinion

VIPER architecture: Our best practices to build an app like a boss

The dev team at Cheesecake Labs has been using VIPER for iOS and Android mobile app development for over one year and we just love this clean architecture!

This article summarizes our best practices on the VIPER architecture, using code examples from our VIPER boilerplate. The code samples used here are in Swift, but all concepts mentioned may be applied to an Android project developed with VIPER, either using Java or Kotlin.

Continue Reading