Luca’s Thoughts

Goals are the fuel in the furnace of achievement.

Atomic Habits: // Building The App

When I learned about this project the first thing that came to my mind was, “ How can I both address the competencies, and show a complete understanding of Atomic Habits, without going overboard.” I realize now, that I was only able to complete two out of the three different goals I set for myself. Before you jump to conclusions, It was most definitely the ability to not go overboard.

 

 

We started this project off by choosing our path to completion for our final milestone. We accomplished this by using a Tic-Tac-Toe board, which was filled out with different steps/options. Although the name doesn’t really help with the explanation, we were required to pick one step from each of the three rows. I decided that the best path for me was to first summarize the four laws of Atomic Habits, use this knowledge to create a tool that exemplifies these laws, and then reflect in a blog post. There were many reasons why I picked these steps, so I will quickly run you through my ideology.

(Personally I would have gone with the name: Think-Act-Know Board)

I’ve always thought that the most important part of the book was the four laws, so that choice was a no brainer. The four laws seemed to resonate with me the most from when I first read the book, but since that was at the begging of the year I felt like I needed to recap on what I learned.

Luca’s Four Law Summary

1 – Make it Obvious

  • Use of Implementation intentions (‘I will [Behavior] at [Time] in [Locations])
  • Use habit stacking (After the current habit, I will do the new habit) 
  • Make the cues of good habits obvious and visible.
  • The two most common cues are time and location.
  • Your habits become associated not with a single trigger but with the entire context surrounding the behaviour.

 2 – Make it Attractive

  • Habits are a dopamine-driven feedback loop. When dopamine rises, so does our motivation to act.
  • The anticipation of a reward – not the fulfillment of it.
  • One of the most effective things you can do to build better habits is to join a culture where; your desired behaviour is the normal behaviour, and you already have something in common with the group.

3 – Make it Easy

  • Prime the environment. Prepare your environment to make future actions easier.
  • The most effective form of learning is practice, not planning.
  • We will naturally gravitate toward the option that requires the least amount of work.
  • Decrease friction with good habits, Increase friction with bad habits.

4 – Make it Satisfying

  • Use a habit tracker. Keep track of your habit streak and ‘don’t break the chain’. 
  • To get a habit to stick you need to feel immediately successful – even if it’s in a small way.
  • What is immediately rewarded is repeated. What is immediately punished is avoided.

Bonus, and by far my favourite part of the book: Habits are the compound interest of self-improvement. Getting 1 percent better every day counts for a lot in the long-run. To learn more please visit https://jamesclear.com/habits. 

App

 

The next step of this project was the creation of our tool. Recently I have been making lots of videos and podcasts on different topics, and although they were really easy, I felt like I had to create something new. This was our last PGP project for possibly forever, and I felt like I owed it to my teachers to finish out strong. So taking this into account, I racked my brain a little longer until I finally discovered the tool I was looking for. I had decided that I was going to make an app. Not just any app, but an app that could be used to track habits efficiently, over a period of time. 

 

I started out with the idea to build an app that could graph habit building on daily input, a pretty lofty goal for someone that had never made an app in my life and didn’t know any coding languages. Looking back, I definitely thought that making an app would be a lot easier, and was under the assumption that I could just use a template. (but I was wrong)

First I decided to find an application that I could use to build an app, and after some research, I decided to pick Xcode. Xcode is an Apple application that comes free with a supporting Apple device and runs C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and Swift. I picked Swift because it was the default for the application, it had the most video tutorials, and because I had used the app SwiftPlayground a few years ago. Little did I know that the Swift I was using was a much more complex and seemingly completely different from the code on SwiftPlayground. 

 

 

Once I got the application up and running I searched around the web for some sort of template (that was free), but to no avail; I came up empty-handed. It started to click that creating an app would be a lot harder than I thought, but I didn’t give up just yet. Next, I scoured YouTube for a tutorial and finally, I found what I was looking for. I had found a video called “Swift For Beginners: Create ToDo List App for Beginners,” by a channel called iOS Academy. The video was 45 minutes long, and ambitiously I opened the app and followed the instructional video. Five hours later, I had an app that possessed, multiple errors and crashed when I clicked the wrong button, but it was an app none the less. 

A few images of the early code, these two are just from my View Controller.

 

It was a little disheartening to know that after about (seven hours now) you still didn’t have anything close to what you wanted. To be honest, this was the point where I would have given up, but there was this small part inside me that wanted to push forward. The next day I opened Xcode, tried the simulator, hoping that the error would just magically go away, but It didn’t. So I went online to research possible solves, and although there were many different forums, the answers were very confusing to someone who had no idea what anything coding related meant.

 

The word tasks was not capitalized in my original attempt.

 

My last hope was to go back through the video to try to find what I did wrong, which evidently would have taken a lot longer than five hours. Right before I opened the video, I spent some time looking around the code for anything that looked out of place, and all of a sudden it hit me. I opened a sidebar and there it was a miss capitalized word. 

 

 

This was the first time I felt like I might be able to complete this app, and although I was sure it was only by chance, fixing that error left me with a sense of confidence. The hardest part was finding out what to do next. It had turned out that trying to fix that error had helped me to understand some of Xcode’s possibilities. This led me to learn more about formatting. Formatting was a way I could work on the app without having to code, and since I didn’t know any code, it was a safe escape from the last couple of days. Unfortunately, this also led me to another set of problems, because I would have to eventually learn code to back up what I was putting on the app. In some ways, formatting was like coding in HTML/CSS. HTML/CSS is a coding language that is used for the creation of websites and in most cases, only affects what you see on the screen. 

 

 

Finally, to finish up my app I knew I needed to complete one last step. I still needed to complete the habit tracking method that I pitched to my teachers. I knew the graph was out of the picture, and all of my formatting had left empty text boxes that didn’t save after you exited the app, so I felt a little worried. I had also tried other tutorial videos but never got them to work with my app. So I slept on it hoping, like before, I would wake up with the answer. The next day I set to work researching how to save text and after a while, I came up with another video. The video was called, “Text Field Input Text (Swift + Xcode)” by a creator called Atif Pervaiz. After starting the video, I learned that it wasn’t going to help me save the text from the boxes, but was giving me a new format to propose my habit tracking. This of course meant that I would have to backtrack some of the formatting. If it worked, I could have a working app, not just an app that sat there and looked pretty. 

 

 

This video entered me into the last phase of this project, and although the video was much shorter, figuring out where to put the code was the hardest part. Eventually, I had come to a point where I had copied the code, and it didn’t work perfectly, but to be honest I didn’t care. I had worked so hard, and getting to where I was exceeded my previous goals. I formatted this last part of the app, and eventually fixed this part of the app so it would work perfectly. I was ready. 

StoryBoard view of my finished app!!!

What I’m Leaving Out/Things to Clarify 

  • I had previously taken a 90 minute tutorial on HTML/CSS coding 
  • Fixing both the first and last errors each lasted around two days.
  • You have the biggest adrenaline rush after fixing an error that takes two days to fix.
  • I spent many hours figuring out how to upload to the AppStore, which never worked.
  • I reached out to Apple Support many times. They couldn’t help with the actual coding part of the app.
  • I could now follow video tutorials and copy them to my app, fix errors in my code, understanding parts of the coding language. I am still not able to code In Swift without instructions.

In this view I could work solely on the launch screen.

In hindsight, creating an app pushed me to my limit on many different fronts. I had been optimistic in the beginning, and although I had created an app that matches my original criteria, it took me a lot longer to complete than expected. It definitely wasn’t the easiest way to get the grade that I wanted, or the most efficient. Will I make an app again in the future? Probably, if I could get more technical support.

Addressing the Curricular Competencies:

Think: How do I make choices, question decisions, and develop habits to support achievement? 

This competency reflects the start of this project, and the decision making proses. When I set my overarching goals at the begging of this project, I wanted to succeed. Although I couldn’t take into account how much time it would take, I knew creating an app would be a positive learning experience. The creation of this app has taught me the valuable lesson of not giving up, even when the odds are against you. I have found life is like a game of Othello, in one move you can turn the whole thing around.

Act: How do I create and demonstrate a thorough and thoughtful understanding?

When I first started my research for this app, I knew that I would have to find a way to support this competency. It has been hard to demonstrate my learning and understanding through the app. One of the ways I addressed this competency was by my reflection in my blog. I wanted to show the research that went into not only creating the app, but also refining my understanding of Atomic Habits, a book that has defined this year’s learning.  In doing so, I was able to use the four laws of Atomic Habits, and reinforce my own habits of perseverance, accountability and positive mindset. 

Reflect: How do I reflect to build knowledge?

In the beginning, part of my plan was to have a short and concise blog post on my app. I should have known that the blog post would reflect the apps creation, by being long, difficult, and rewarding. Reflecting on my app creation has given me a better understanding of my own learning, as well as reminding me why I started this project in the first place. Through this process, I have not only learned about coding, but the importance of giving myself a break when I’m feeling stuck, and coming back to the task when I can be more positive.  Most importantly, I’ve learned that if you put your mind to something, anything is possible.

Next Post

Previous Post

Leave a Reply

© 2024 Luca’s Thoughts

Theme by Anders Norén

Skip to toolbar