OpenTweet

Overview This app uses data parsed from a JSON file to display a handful of tweets and replies whilst also allowing you to dive into individual threads.

OpenTweetGIF

OpenTweet1 OpenTweet2 OpenTweet3

I chose to build this app using SwiftUI and MVVM Architecture. My focus throughout this project was to complete the minimum requirements and the bonuses all while keeping a clean codebase and a clean UI.

Some key features/technologies I wanted to showcase within this project include:

  • Accessibility (DynamicType & AccessibilityLabels)
  • Custom animations
  • Custom launch animation
  • Unit tests
  • AsyncImage
  • Image caching
  • JSON Parsing
  • Date Formatting
  • Custom text formatting (e.g twitter handles)

Challenges

I did come across a couple of challenges while working on some of the bonuses as well as a few extra features I wanted to include that I would have liked to iron out, given more time. I would love to discuss these in more detail and run through my thought process. Some of these include:

  • Trouble with Unit Testing the date variable in the JSONDecodingTests to confirm it matches my expected result (I built a test to ensure it was at least not nil in the meantime)
  • I have a small bug when opening the reply against tweet id: 00005 in which the content text truncates as the view height reduces very slightly.
  • I created a textFormat function to successfully change the styling of twitter handles however I did come across an issue while trying to do the same for the links using my current method which was looking for the prefix ‘https’ however this doesn’t work as the example link in the JSON Data is attached to a ‘\n’

I look forward to discussing the project with you further.

GitHub

View Github