CNPodcast: Retrospective #25

In the latest retrospective, I explain what’s been happening during the break, share my inherent distrust of airlines and detail how I’m handling the quarantine and what’s changed about my future plans.

Episode Link

Show Notes:

You can listen to the Cocoa Nomad Podcast on the following services:

I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram

CN Podcast: Retrospective #23

In the latest retrospective,  I share my latest experience with equipment failures abroad and how rewards/punishment have been affecting my weekly commitments. Whats a bigger motivation, 500 burpees or apple pie and ice cream dessert?

Show Notes:

You can listen to the Cocoa Nomad Podcast on the following services:

I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram

Cocoa Nomad Podcast: Retrospective #18

In the latest retrospective, I share why I decided to take a loss on selling my house and some tips on keeping yourself financially solvent as a solopreneur

You are extending a line of credit when you start a project. So yeah, it’s a good idea to get them to invest a bit in the beginning. It’s their app after all. 

Eric Wroolie, Overpass Apps

Show Links:

You can listen to the Cocoa Nomad Podcast on the following services:

I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram

The 4 E’s of Meaningful Work

Time and attention are extremely valuable assets and I try to avoid wasting them when selecting projects. By looking at what I like to call The 4 E’s of Meaningful Work, I can maximize the likelihood of a positive outcome. 

I’ve been recently learning  a new approach to mobile app development: using declarative UI instead of the imperative approach that I’ve known and used for years. If you’re not a technical person, don’t worry. Knowing the details of the differences in these two approaches is far less important than how the areas or meaningful work

In talking about the each area, I’ll discuss the benefits, the impact of missing it and how I try to make up the difference. Hopefully, you can use this approach in evaluating the work that you do and improve your decisions about what is worthy your time and attention


This is the most important area for me so it’s where I tend to start. I am far more likely to do something that provides an educational benefit, even if it’s lacking in the other three areas. In learning Declarative UI, I saw the educational benefits  coming in four ways:

Increase of Competence and Confidence

Learning by doing is a great way to improve efficiency and efficacy.  The process may been slow at the beginning but with each new coding challenge and sample project, I get faster and I find my confidence growing as I integrate the new concept into my current body of knowledge.  

Expands Area of Expertise

Having a different approach to develop mobile apps  provides the added benefit of having more perspective on something that in which I already specialize. Of someone has a need, I can now draw from a larger pool of expertise to find the optimal solution. Having more arrows in my quiver means that like Arrow or Hawkeye, I’m more likely to have to right one for any occasion.

Allows You to Stay Current

Because the declarative approach is the “new hotness”, learning how to do it keeps me current and able to engage in what the cool kids are doing. I don’t give this aspect much weight normally, as there will always be another new shiny thing and I can’t afford to invest time and attention in all of them. In this case, I felt it was a good time as I saw a convergence on both major mobile development platforms. Google was further ahead with its Flutter framework by about 2 years but the strong commitment by Apple with SwiftUI means that I can learn simultaneously two solution to the same problem.

Can be really fun

Learning new things not only increase confidence and competence, it can also be fun. Remember the joy of a young child, constantly asking questions and acquiring new information. I’ve been using resources such as Paul Hudson’s 100 Days of Swift. His approach makes the process fun and I’m digesting it in reasonable bytes. Likewise, the The Boring Flutter Show has an great forum that provides a good mix of education and entertainment

Not Reaping the Benefit of Education?

Not every project will be challenging or allow you to acquire new knowledge of skills or use them in a different way. Too much of this can lead to stagnation and burnout. To combat this, push yourself to go beyond the requirements (if time allows). For example, perhaps the project doesn’t require continuous integration or testing but use the project as a testbed (pardon the pun). Because the project isn’t itself isn’t challenging, you’re free to use you mental capital in learning the new thing.


While I’d love to imagine that I’m above it, in a world of financial realities, it’s hard to ignore to ignore the economic impact of the work that we do. Deciding to take on this endeavor is no different. There’s an opportunity cost in engaging, you could be reaping financial benefits by doing something else. I’m still doing this because I believe there will be a future economic benefits via client work such as:

Keeps the Lights On

Two of my favorite activities are sleeping indoors and eating. I enjoy them so much, I try to do them daily. Receiving payment for my development efforts allow me to continue doing more work, even if it’s not in luxury. Tacos are cheap but they aren’t free

Creates Runway

Having a financial buffer also creates runway, time in which I can survive financially if my income and expenses remain constant. The more runway I have, the more I’m able to invest in future projects and improvements on existing ones.  As Walt Disney once said, “’We don’t make movies to make money. We make money to make more movies.’

Support Meaningful Endeavors

In addition to keeping my own business and life going, I like to support others who are doing meaningful work. As my economic benefits increase, so does my ability to support them. Some personal examples for me include Black Girls Code and The Human Utility.

Provides a quantifiable measure of value. 

Even though I’m not working on any paid projects using declarative UI frameworks, I can use the current projects to gauge levels of effort when estimating future project costs. In addition, I am able to create reusable components and gain experience which allow me to provide  a better level of service to my clients.

Not Reaping Economic Benefits?

This can be a pro-bono or open source project that you’re working on. It could be a project in which the client didn’t pay or simply an app that you love but hasn’t generated any sales. Take the learning from this project and try to monetize it in other ways.


This factor is a hot button amongst creatives. We are often approached to do unpaid work as a way of gaining exposure. I would caution anyone who has heard this to consider a few things. Firstly, reread the previous section. Secondly, paid opportunities also provide exposure  in addition  to the money (Imagine that!). Whether paid or not though, exposure provides benefits:

Offers Social Proof

If a tree falls in a forest and no one is around to hear it, does it make a sound? Of course it does, that’s how sound works but who will know? Gaining exposure allows that noise to be heard and validate that it indeed happened.

Builds trust

Publishing work allows you to establish trust with others. By sampling your work, others can gain confidence that you know not only what you’re talking about but what you’re doing as well.

Increases Marketability

Taking on new challenges can make you more marketable. As previously mentioned, staying current with new technologies has educational value but applying those new skills to help those who need it has a multiplying effort. It’s here that we can see the junction of the Education, Economic and Exposure aspects.  There’s one more coming but first:

Not Getting Exposure?

 We live in an age where the democratization of information and access to it provide you  a greater degree of control over how much exposure you can receive. Toot Your Own Horn! Post what you’ve done on your website, blog, podcast and/or video channel. Even if client work is of a sensitive nature (under NDA or classified), there may still be lessons drawn from it that you can migrate into something that can be shared. Talk about the concepts, challenges and solutions in abstract terms.


Human beings are emotional creatures so decisions are not typically made based on tangible factors alone. Self actualization and  esteem are at the top of Mazlow’s Hierarchy of Needs. In addition to the other benefits mentioned, how we feel about ourselves and the work we do is important. It provides benefits such as :

Higher Quality of Work

When we are passionate and enthusiastic about our work, it shows. It’s so much easier to go the extra mile when you are fully invested in what you’re doing. I do caution that passion should not be a substitute for a strong work ethic. Keep your word and do what you say you’ll do.

It Feels Good

Work that we enjoy is less arduous even if it’s hard. As the saying goes, “Time flies when you’re having fun”. 

Not Getting Esteem?

Soul sucking projects are harmful in the long term. Taking on projects that compromise your values can take a toll and doing them is a difficult decision. However, more often than not, it’s not that the work is compromising, it’s just boring. To combat this, it can be helpful to tweak your outlook on these projects.  Find an interesting angle that you do find interesting. It could mean taking a broader view of the project find connection points between it and things that you are passionate about.


Choosing where to allocate your time and attention is as important as the work you do. I hope you find this guided approach useful in your own decision making. I talk in more detail about my process on The Cocoa Nomad Podcast. Feel free to tune in and get more insight and examples.

How do you decide on which projects are worth your time and attention?

Fluttering toward Cross Platform Solutions

After reading yet another piece on “Why We Switched To/From CrossPlatform/Native”,  I decided that it was time to examine the state of cross platform app development for myself and not rely on the opinions of others, as their reasons for landing on their chosen solutions vary.

Why Now?

After watching the talks at this year’s Google I/O and  Apple’s WWDC, it’s clear that the development puck in mobile is moving toward declarative UI with reactive state management. Much like Swift  and AutoLayout, despite my initial feelings about these technologies, I’ve had to reconcile them against the reality of their increased presence. I believe that cross-platform development is no different. It’s simply a matter of the form that I find most palatable.

What about SwiftUI?

While my original intent was to build a SwiftUI app in time for the release of iOS 13 but I ran into too many issues early on to make that viable. However, these approaches are not mutually exclusive and maintaining development “purity” is far less important to me than putting  solutions into people’s hands. Done is better than perfect after all. For now, I think a side-by-side comparison of the respective approaches  of SwiftUI/Combine versus Flutter will provide enough some insight into where each each is in terms of maturity and utility. There may still be cases where the SwiftUI/Combine approach would make the most sense.

The Roadmap

I’ve decided to proceed with a few of my existing iOS apps as a base to provide a point for comparison, each with escalating complexity.


A transit schedule app, for the Goldsboro-Wayne Transit Authority in Goldsboro, North Carolina, this is the simplest of my current apps. The goal here is to finally provide the long intended Android version to complement the iOS version that shipped in 2018.  There are 3 screens of content that will provide a solid foundation using Flutter for:

  • connecting to Firebase to provide bus route data (JSON)
  • displaying provide route  and estimated bus locations on a map
  • simple UI animations and transitions


Capoeira Songs

I’m bringing my very first mobile app back from the grave. The current iteration is being built natively on iOS in Swift but I’d like if I can move faster with a cross-platform approach (factoring in the learning curve). The original version of the app was as simple as GWTA but the latest incarnation in more complex and will provide a nice testbed beyond the basics so that I can see what Flutter/Dart is capable of, specifically:

  • how to implement business logic in Dart versus Swift
  • advanced UI animations and transitions
  • shared user data (e.g. leaderboards and song lists) in Firebase



My expense tracking app for digital nomads will provide an opportunity to investigate state management in Flutter, as there are various screens throughout the app that are affected by changes to expenses. The newest version is almost ready to ship on iOS and getting a comparable Android version built will take some effort. On the positive side, I will be forced to ship smaller, more frequent updates in order to reach parity. From there, I will evaluate whether I should port the iOS version over to Flutter.

I have no idea where I’m going to land on the cross-platform vs. native debate but I imagine that like all things in development, the age old answer of “it depends” will still apply.

The Cocoa Nomad Podcast #24: Arbitrage

In this episode, I talk about the concept of arbitrage, share the ways in which I have used it and  how you can make it work in your own life.

Show Links:


You can listen to the Cocoa Nomad Podcast on the following services:

I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram

Photo by Artem Beliaikin on Unsplash

Cocoa Nomad Podcast: Retrospective #11

In this retrospective, I provide progress updates on Capoeira Songs, share my productivity struggles and look to the upcoming fall events.

Show Link:


You can listen to the Cocoa Nomad Podcast on the following services:

I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter() or Instagram

The Cocoa Nomad Podcast #22: Eating the Frog vs Quick Wins

In this episode, I talk about changes to the show and its release schedule, how I use music to set the mood while working and making the choice between tackling huge tasks versus small ones to start the day.
You can listen to the Cocoa Nomad Podcast on the following services:
I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram