I spent exactly 8.5 hours this weekend and built a fully functioning SwiftUI app. It uses open data to map the Heritage Trees of Portland, OR.

It's also open source. I'm planning on continuing to build this in public. github.com/joemasilotti/p…
My first pass was a simple list view showing each tree. This downloads data from an open API provided by the city of Portland.

I experimented with Combine and URLSession's dataTaskPublisher to get this working in MVVM fashion.
portlandmaps.com/metadata/index… Image
Next up was a bare-bones detail screen. I mapped some of the important properties in a new screen via NavigationLink. Image
iOS 14 added a SwiftUI Map, which I took advantage of next. Image
I then played around with a bit of design on the dimensions of the trees. The gray is definitely a little dark here, but it's Color.gray, so it was easy and fast! Image
Tapping the tree name opens up a Wikipedia query in SFSafariViewController. This was fun/annoying to wrap in SwiftUI, but now that it's working I can use the code in other projects. Image
Most of today was spent working with the Map and MapAnnotations. Turns out you can't use a MapPin and also make it tappable. So I resorted to custom icons.

I think they're pretty cute! Image
To close out the day I set up fastlane and uploaded to TestFlight. If you're in Portland, OR and want to give it a spin send me a DM! Or you can download and run it on your device from GitHub.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Joe Masilotti

Joe Masilotti Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!