Swijito

An Apple iCloud Photostream Client written in Swift

GPL-2.0 License

Stars
21
  • Important Info!
    • The code is awful. Now that proper JSON handling tools for Swift exist, a huge part of the JSON code should be thrown away
    • This was written right after WWDC 2014, when Swift relied much more on Foundation types (or rather, when one had to, because the native Swift types lacked a lot of functionality). This is not the case anymore, and the overuse of Foundation types should be thrown away.
    • I hope to find some time to properly rewrite this app. Given the current state, a full rewrite would be better than trying to fix the code as it stands right now.

[[file:icon.png]]

  • Swijito
    ** A Apple iCloud Photostream Client in Swift

[[file:image.png]]

This is a simple client that allows you to view people's iCloud shared photo streams in an app on your Mac instead of having to open a browser for them. This is a very early relese, it lacks a ton of functionality.

[[./Swijito-0.1.zip][You can download a binary for Mavericks+ here]]

I've created it because I needed a simple non-toy project to improve my Swift knowledge. After going back and forth between different ideas, I decided to implement this, because it is something that I'd actually like to use myself

  • Status
  • This exists mainly to educate myself about Swift. Thus, the Swift code quality is currently sub par, as I'm trying to figure it out.
  • I plan to continously update this and refactor the Swift code to be better encapsulated, abstracted, and cleaner
  • Very limited UI
  • Can't like or interact with an image
  • Only loads the full quality images, does not load the previews
  • Currently no support for video files (half done though)
  • This is more or less a learning project and not production quality code, so it lacks unit tests
  • Usage

If you add an account, you have to add the account id. I.e. in the following iCloud stream: #+BEGIN_SRC Sh https://www.icloud.com/photostream/#ANJtdd8978987s #+END_SRC

then =ANJtdd8978987s= would be the account id that you need to enter into the =Add= dialog.

  • Todo
    Where to begin? :)
  • Load previews
  • Add icon view
  • Add support for liking items
  • Add support for commenting on items
  • Improve UI
  • Refactor Swift Code
  • Finish the work on video files
  • Add unit tests
  • Add auto-loading of more items if users scroll down and if there're more than 100 items on the stream
  • License Since I really care about improving the Swift code quality of this project, it would be sad if any work done on this ends up being proprietary instead of open for others to learn from. So I chose the GPL v2 as the license of this code. You can do whatever you want, as long as all your code modifications are also being open sourced for others to learn from.

  • Notes

  • "Kijito" means "Stream" in Swahili
  • Swi-jito is then the Swifting Stream