100 Days of Code – Week 3

Week 1 Review | Week 2 Review | Week 4 Review

This week I had many wins. I fixed my navigation to my satisfaction, I added the settings screen and implemented a working system that will work going forward. Currently, there is just one setting for showing or bypassing the delete confirmation dialog.

There was a lot of refactoring to better methodologies and practices. For example, my data source is now in a singleton which ensures only one instance can exist in the application and is also accessible from anywhere. This made updating parts of the user interface a lot easier.

I also changed the language field to a selector rather than free entry; this will serve much better for my planned features like filtering and searching. It also makes the data more predictable so the user cannot enter things like ‘JavaScript’, ‘ Java Script’, or ‘Javascript’. This might seem minor, but consistency is the key to better data and pattern matching. The user will be able to manage the languages listed, so fear not.

Tools I used

  • Xcode 8
    IDE and compiler.
  • Tower
    Git client.
  • Ulysses
    Text editor
  • Sketch
    UI and design tool.
  • iPad Pro
    For testing

Lessons Learned

Refactoring code is a great way to keep things organized and clean, never be afraid to tell yourself that something you did can be better. Often as we expand our code base, it is helpful to find ways to modularize functionality to reduce code duplication.

Last Weeks Checklist

Let’s see how much of what I planned got done.

  • Get note deletion working.
  • Replace the test data with actual notes (no permanent storage just yet)
  • Display new notes in the note list view when saving.

A great week of work, I achieved all my goals and a few extra. I feel things are coming together now. Arguably except for permanent storage, you could say it is a working application at this point. Albeit one with few exciting features or attractive looking interface.

Next Steps

In the coming week, here is my planned progression.

  • Add permanent storage.
  • Add language list management.

Follow My Progress

You can follow my progress via the following

The Wrap

This week was a disappointment in some regards, however, on the positive side, I had a couple of fundamental problems that caused me lots of issues over several days, and I hung in there and worked through them. Those lessons will prove invaluable in the sense that how ever hard the problem is, I can get through it.

If you are working on the #100DaysOfCode, I’d love to hear your thoughts and reports.

Share Button

Signup for my Free Swift Newsletter