Astro is a Sun & Moon tracker for mobile devices.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
iOS/astro_iOS iOS Update Apr 26, 2018
landing Website Updates May 31, 2018
LICENSE Initial commit Apr 18, 2018

Astro - Mobile App

Astro is a Sun and Moon phase tracking application designed for mobile devices. Astro was designed with a simple goal in mind, what time is sunrise/sunset for any date and what phase will the moon be in for any date. One of the main requirements for this app was offline capabilities, since there's no guarantee that you will get GPS data all the time from a device. Currently Astro is available for iOS and Android devices, with support for Windows Phone and a Web version planned for a later release.

Common Components

Astro was designed to provide a cohesive interface and design so that no matter what platform is used, the same overall experience is achieved. The following components were used across all platforms:

  • Icons8 - Large library with various versions designed for each specific platform.
  • Idealist Sans Font - A simple but easy to read font that looked good with the rest of the UI/UX.

Astro for iOS

Astro for iOS was written in Swift and built for the latest iOS version (at this time 11.0). I decided to use Carthage for my package management since it was building faster than the Cocoapods version. The following libraries were used in the iOS App:

  • Chameleon - An easy to use color framework (especially for the gradients used in the app).
  • SwiftDate - Probably one of the easiest ways to deal with and manipulate dates.
  • SwiftLocation - Best alternative to CoreLocation services.
  • SQLite.swift - A great way for working with SQLite databases.
  • Notificationz - Easy way to work with NotificationCenter.
  • ClusterKit - For creating the clustered icons on the map screen.
  • LatLongToTimezone - TimeZone Mapper using Lat/Lng coordinates.

Astro for Android

Astro for Android was written in Kotlin and built for the latest Android version (at this time 27). In it's current design Astro works for most devices, but new layouts will be needed for smaller screens. The following libraries were used in the Android App:


Outside of the libraries used in each platform, and the common components shared by all projects I have to thank my family for encouraging me to take on this challenge to better myself as a developer. Astro is the first project in a personal challenge so it was interesting to see where I can improve in my development process.