/ios-mini-app

A simple bucket list app for iOS

Primary LanguageSwift

ios-mini-app-opal

ios-mini-app-opal created by GitHub Classroom

Team Member List:

  • Cabell Glancy (bcg7mf)
  • Matias Rietig (mjr9r)

Device Name: iPod Touch - Opal

App Title: iOS Bucketlist

Basic Instructions on Usage

  1. Add Item
  • To add an item, tap the "+" button in the top right corner and fill out the textfields in the upcoming view with the specified data. Once all fields are filled out, tap the "Save" button in the top right corner of the view. The new item will now be added into the right field of the original bucket list.
  1. Edit Item
  • To edit an item, find the row of the item to be edited and swipe to the left. Of the two buttons that appear, tap on "Edit" and make the desired adjustments in the upcoming view. Again, tap the "Save" button sitting in the top right of the screen to see your changes were made in the bucket list.
  1. Mark Item as Finished
  • To mark an item as finished, again, find the row of the item to be marked as finished and swipe to the left. Of the two buttons that appear, tap on "Done" and the row's background will change to grey and the item will be resorted to the bottom of the list. To mark an item as undone, just repeat the steps described above.

No additional information is needed to run the app.

Lessons learned

It is probably most interesting to compare what we learned making this mini app to our lessons learned from the previous Android bucket list project we did:

In our Android project report, we stated that the major lessons learned included working with git as a team and learning to work with a new IDE (Android Studio). The programming language itself (Java), though, did not present us with a particular challenge. However, with the iOS project, things were a little different since neither of us had a lot of experience with programming in Swift before. Hence, getting the basic set up of classes and the tableview done was not as trivial as it was in Java. The same goes for the sorting function, which was straight-forward to set up in Java but considerably harder in Swift.

Similar to our last project we had to get used to another IDE, Xcode, which at first seemed to be very intuitive but as we later learned came with it's own pitfalls. For example, vacuous error messages tha occured when some outlets are not deleted properly or optionals are not casted as required.

Also, and this goes along with the previous issue, looking for solutions to our problems on the internet was harder for Xcode/Swift than it was for Android Studio/Java. You always have to pay special attention to the date a tutorial/stack overflow thread was posted and whether the example is in Swift2, Swift3 or Objective-C, since there are major differences between the three.

Another minor takeaway from the project concerns our team organization: Only one of us had a Mac laptop available, so we had to take external influences (lab hours) into account when planning our group work.