From Interpreted Basic to SwiftUI
by Deborah Graham
Developer Nation Community Stories
It is with great excitement that we are now kicking off our new section of stories coming right from our Developer Nation community members.
Our first piece comes from Deborah Graham who recently attended Apple’s WWDC and decided to put her learnings from that experience into immediate action.
This is the first part of Deborah’s story, recorded in her own vivid style.
Taking 250 pages of notes at Apple’s WWDC
Well, another WWDC (Apple’s WorldWide Developers Conference) has come and gone (week of June 6–10, 2022). I took a week off my regular, full-time job as a Finance BI Specialist (yeah, doesn’t really explain what I do, let’s say I work with Access, VBA, and SQL a lot and some source systems to get data into reports and SQL tables so others can create Tableau reports for employees to consume) to “attend” the conference and I watched 12 sessions(so far) and a surprise video from my favorite Swift online teacher, Paul Hudson (@twostraws).
I took a lot of notes, and then created a Word document with the transcripts and code segments attached to the sessions. This Word document is over 250 pages already (and I have sessions I haven’t seen yet that will be added to the document). Why did I do that? It’s actually already come in handy…but let’s not get ahead of ourselves.
Rewriting my app to Swift
For starters: Using Xcode and Figma
Over the weekend, after the WorldWide Developers Conference concluded, I started working on getting my current, old app (written in Objective-C and hard to maintain and update) updated to reset the clock so the app would stay available in the App Store. It’s “Which 1 Are You”, if you are inclined to download it and see the “before” version as I work though re-writing it into Swift and using updated standards and design expectations.
I downloaded the latest Beta version of Xcode to make sure the app would actually still run (if not, I had a LOT of work ahead of me to get this app updated before the deadline Apple set before they yanked it off the App Store due to not having updated it since June of 2017…yikes, it IS old!).
I found out that I needed an App Store Icon (1024 by 1024). I wanted to find a free program to create an icon. A quick search found a video which suggested some paid programs and a free one called Figma. I figured that would work for me. I created the simplest icon I could. Luckily, it built and ran without changes.
I figured I needed something different before I could submit to the App Store, so I marked it as working Upside down, too. I ran into a long list of issues during Archive and they were all small items.
Submitting to the App store
Then I ran into issues when submitting to the App Store. I found out that I could not submit an app from a Beta version of Xcode. So, it was back to the other version I had and tried again.
It seems, since I said I don’t collect data on users, the frameworks I used originally for ads, which no longer work, do collect (or might collect) data, so I either needed to revamp my statement or remove the frameworks. So, I removed the frameworks and tested it again. All was good. Back to submitting to the App Store.
Then, I needed screenshots in all sorts of different sizes. Luckily, another search showed me that the Simulator Tool allows for screenshots. I spent an hour running the program in different device simulators to take screenshots and upload them to the App Store Connect page to get all the images I needed.
It was late Sunday night when I finally got the green light that the app was in for review. I went to sleep wondering if the review would find anything else I needed to do. Woke up Monday and checked my email. My updated app was available on the App Store! Version 1.6.3 was a go!
This means, I have some time to work on getting the app into Swift and taking the knowledge and advice I received at WWDC 2022 and re-vamping the app.
This blog will document the progress, insights, inspirations, and setbacks as I encounter them. Hope you enjoy the journey!
About the Author — Deborah Graham
Deborah Graham is a professional developer. She has over 20 years of experience with various programming languages. It all started while attending Community College to get an Associate degree in Electronics technology (hardware). One day, they delivered some Apple IIe computers to the computer room to keep the PDP-11s company. There was a pong-like game written in Interpreted Basic where the source code was available. She quickly figured out that by increasing her paddle to 99% of the goal area and the opponent’s to 1% and turning up the speed of the ball, it was a fun way to a win. One small change, one big difference. And a love of programming was born.
When not in class, she could usually be found sitting at that Apple IIe and tweaking the program a little to see the changes. After graduating, she held several hardware-related jobs to match the degrees (two Associates: Electronics Technology and Computer Maintenance Technology, both hardware-based degrees), including Test Technician, Manager of the Test Department, Customer Support (where she created the Customer Support Newsletter that would collect errors in the hardware or documentation and send it out to the local sales and support reps to cut down on support calls to the home office) and then she went to the documentation department to correct all the errors and to create technical documentation with the hardware engineers. She was a Technical Writer for an automated testing machine manufacturer. The documentation software (this was WAY before Word) used LISP (now just Lisp) as the extension tool.
The writing team found they needed/wanted to extend the documentation software to do things like index across all documents and spell-check all documents. Luckily, there was a class happening and she flew up to Montreal to attend the week-long class and the love of programming continued! When she got back, all sorts of extensions were created and shared with other users of the software.
One day, during the yearly performance review and plan for next year, her manager said to get a promotion, she would need to get a bachelor’s degree. Didn’t matter in what, it was one of the requirements to move up in the company. So, she called the local state school and asked what degrees they offered. And BSCS (Bachelor of Science, Computer Science) was one of the choices. It was either that, or Nursing or Teaching. Easy choice!
Right before graduating (and being eligible for a promotion), she was laid off! But now, with a degree to go with her love of programming, she was hired by the documentation software provider as a technical writer. After that, she worked for an early browser-based distance learning provider as a technical writer. One Friday, the boss asked her if the online help she was writing in HTML could pop up when links where clicked instead of completing replacing the main help. Granted, that’s a no-brainer now…but this just wasn’t available in HTML at the time.
That leads to the list of the programming languages that she was used to professionally write code:
- M/MUMPS/Caché ObjectScript
- Certified AES
- Visual Basic/VBA
And some that she uses for her hobby
Which brings us to the hobby. One team she was on had a meeting habit of taking personality tests before the meeting and then declaring which one of something each team member was. Which flower are you? Which Major city? Which cartoon character? Each week, someone on the team would find an online test, and they would all take the test and report the results for the icebreaker at the start of the meeting. One week, she was looking for a test on which character from Scorpion (a television show about geniuses that solved problems for the US government each week and learned a little more about how to function in society with a help of their “normal” assistant and her genius son). Anyway, she could find tests on which genius, but not specifically about that show. When she mentioned this difficulty to the team manager, she was told to write one herself. Apple had just opened the AppStore to developers, so here was another opportunity to learn a new language. It took a few years of reading books, finding online classes on Objective-C, and finally getting an app into the AppStore. The CIO of her company mentioned it at a few All-Hands meetings, and he shared his test results. There are 15 tests available for a variety of TV, movies, cartoons, and general interest. If you are at all inclined, it is called “Which 1 Are You” and it has her name as the developer.
As an Apple Developer, she is invited to attend Apple’s WWDC (World Wide Developers Conference). Before the pandemic, it was almost impossible to get tickets. Since the last few years have been online, it opened the gates and allowed anyone to participate. She has “attended” WWDC for two years in a row now and looks forward to attending them each year. She takes a week off from her full-time job as a SQL and VBA Programmer and soaks in the new information and the enthusiasm from the presenters and other attendees.
She was asked by Developer Nation to document her journey from WWDC 2022 to an updated version of the app, totally re-written in SwiftUI, into the AppStore. Follow along and see what works, what doesn’t work, and let’s see if she can get the app ready for version 2.0! You can email the author at FromInterpretedBasicToSwiftUI@gmail.com.