From zero to the App Store in one week-end

Build a complete app from scratch in a week-end? Challenge accepted! I started the project on Friday evening and submitted the app for review on the App Store on Sunday evening. It was accepted during the night and live on Monday morning.

So what was there time to do in just a weekend? Actually, a lot:

  • SwiftUI: I experimented a tiny bit of SwiftUI before, but nothing compares to building a real app!
  • GPS based location is retrieved in the background, reverse geocoded and stored in CoreData
  • Forms: automatically recording locations is cool, but you sometimes have to go and manually add or edit visits, SwiftUI makes it particularly easy to create dynamic forms with very little code and handles pretty much everything for you
  • In-App Purchase with a paywall selling a non-consumable product to unlock some features like yearly / country reports and PDF export
  • PDF generation from HTML templates, and export using a SwiftUI wrapped version UIActivityController
  • Analytics and Crashlytics integration using Firebase
  • App Store preparation: finding a name, writing description, creating a logo, preparing screenshots, submitting the In-App Purchase product
  • Submission!

What kind of issues did I run into?

  • SwiftUI is fun, but sometimes it’s just really hard to do something really simple (like presetting two modals / sheets from the same view), and sometimes you simply can’t do something simple (like removing the disclosure indicator from list cells without generating random crashes)
  • Fastlane didn’t want to work on my machine, I wanted to automate the screenshots but couldn’t, but it’s ok, since there is only one language for now and the app only support the iPhone, taking screenshots manually wasn’t too long
  • Apple randomly disabled submission from the version of Xcode available on the Mac App Store, and obviously the error message when submitting was super obscure… had to download the next coming GM from the developer download center

Is the code clean? Hell no! But was it fun to do? Absolutely! I don’t know if this app will ever sustain itself, but I’ve to admit we live in a time where very powerful tools are available for us to experiment and iterate really quickly. I’ll definitely do this kind of challenges again 🙂

Link to the app: https://apps.apple.com/us/app/trvl/id1487340379

Don’t Be A Free User

An article I really liked to reference disappeared from it’s original website, so here is a copy of its content from the Web Archive.

“Someone builds a cool, free product, it gets popular, and that popularity attracts a buyer. The new owner shuts the product down and the founders issue a glowing press release about how excited they are about synergies going forward. They are never heard from again.

Whether or not this is done in good faith, in practice this kind of ‘exit event’ is a pump-and-dump scheme. The very popularity that attracts a buyer also makes the project financially unsustainable. The owners cash out, the acquirer gets some good engineers, that’s the principle of marketing, and is why is important to know how to target your products and is when services as SEO for IT companies can be helpful so the companies can learn how to market their apps and services.

To avoid this problem, avoid mom-and-pop projects that don’t take your money! You might call this the anti-free-software movement.

If every additional user is putting money in the developers’ pockets, then you’re less likely to see the site disappear overnight. If every new user is costing the developers money, and the site is really taking off, then get ready to read about those synergies.

To illustrate, I have prepared this handy chart:

Free Paid
Stagnant losing money making money
Growing losing more money making more money
Exploding losing lots of money making lots of money

What if a little site you love doesn’t have a business model? Yell at the developers! Explain that you are tired of good projects folding and are willing to pay cash American dollar to prevent that from happening. It doesn’t take prohibitive per-user revenue to put a project in the black. It just requires a number greater than zero.

I love free software and could not have built my site without it. But free web services are not like free software. If your free software project suddenly gets popular, you gain resources: testers, developers and people willing to pitch in. If your website that’s on a fully managed dedicated server takes off, you lose resources. Your time is spent firefighting and your money all goes to the nice people at Linode.

So stop getting caught off guard when your favorite project sells out! “They were getting so popular, why did they have to shut it down?” Because it’s hard to resist a big payday when you are rapidly heading into debt. And because it’s culturally acceptable to leave your user base high and dry if you get a good offer, citing self-inflicted financial hardship.

Like a service? Make them charge you or show you ads. If they won’t do it, clone them and do it yourself. Soon you’ll be the only game in town!”

— maciej from Pinboard on December 06, 2011

dotfiles

DĂ©couverts rĂ©cemment lors d’une formation, les dotfiles sont gĂ©niaux !

Il s’agit de partager via git (ça pourrait marcher avec n’importe quel autre gestionnaire de versions) la configuration de son ordinateur de façon Ă  pouvoir rĂ©-installer simplement son environnement de travail. NommĂ©s dotfiles en rĂ©fĂ©rences Ă  tout ces petits fichiers cachĂ©s commençant par un . sur les systèmes Ă  la UNIX, il est vraiment intĂ©ressant de les mettre en forme pour les partager, et ce pour diverses raisons:

  • Sauvegarder & restaurer sa configuration: lorsqu’on change ou formate sa machine, c’est quand mĂŞme pratique de ne pas avoir Ă  tout reconfigurer, en particulier tout ces petits rĂ©glages qui rendent l’utilisation du terminal efficace
  • Apprendre des autres: en naviguant parmi les nombreuses configurations d’autres power users qui les partagent eux aussi, c’est l’occasion de dĂ©couvrir de nouveaux outils et de nouvelles pratiques

J’ai donc dĂ©cider de moi aussi partager mes dotfiles sur GitHub.

L’explication des dotfiles, directement par GitHub: http://dotfiles.github.io/

Introduction Ă  cyrilchandelier.com

Je n’en suis pas Ă  mon premier essai de lancement de site web. Jusque lĂ , j’avais double-c.fr pour diffuser mon contenu personnel et professionnel, mais pris d’une envie de regrouper tous mes domaines et de disposer d’un site rĂ©ellement Ă  mon nom, j’ai dĂ©cidĂ© de mettre fin aux jours double-c.fr pour inaugurer cyrilchandelier.com.

double-c.fr est mort, vive cyrilchandelier.com !

Je donne Ă  ce site deux objectifs:

  1. Continuer la tâche de son prĂ©dĂ©cesseur, Ă  savoir diffuser mon CV. Objectivement il n’a servi qu’à ça, mais j’aimerai maintenant donner plus de place aux projets rĂ©alisĂ©s ou en cours de rĂ©alisation qui sont le plus souvent cachĂ©s entre deux rĂ©fĂ©rences dans un CV mais qui ont toutes leur importance dès lors qu’il faut dĂ©montrer ce que l’on sait faire.
  2. Me permettre de partager l’information. Je suis curieux, j’aime expĂ©rimenter tout un tas de technologies, me spĂ©cialiser dans certaines, mais au final, après avoir tout appris ou presque sur Internet, il est temps de partager Ă  mon tour.

A très bientôt sur cyrilchandelier.com !