Synctrain:一个重新思考的 Syncthing iOS 客户端

  • History of File Synchronization: Launched in 2007, Dropbox made file synchronization easy. Tech geeks were skeptical initially. These services have become ubiquitous but have limits and downsides. Cost is an issue for large storage, and leaving files with tech giants may not be a good idea.
  • Resilio Sync and Syncthing: In 2013, BitTorrent Sync was released and later spun off into Resilio Sync. In 2013, the Syncthing project started with similar concepts. It has advanced features like encrypted peers and versioning and is highly portable.
  • iOS Challenges: Until iOS 11 (2017), iOS had no proper file manager app. File storage was separated between apps. iOS also imposes strict limits on background processing for apps like Resilio.
  • MobiusSync: In 2020, Syncthing was made available on iOS in an app called MobiusSync. It wraps Syncthing and adds features like using iOS background processing allowances and integrating with the built-in Files app. But it is a closed-source paid app with a not well-optimized UI.
  • Building a New iOS App for Syncthing: The author started building a new iOS app for Syncthing. They used gomobile to embed Go libraries in Swift iOS apps. They faced challenges in building Syncthing with gomobile and had to build a Go wrapper for some types. They discovered a function for fetching blocks and used HTTP range requests to enable streaming media. They built selective synchronization by using existing ignore file functionality.
  • App Release and Future Work: The app's reception was initially lukewarm. After discussions with Syncthing authors, it was published under the MPLv2 open source license and approved by Apple App Review. More work is needed to make some Syncthing code public and upstream the changes. The author is happy with the result and learned a lot in the process.
  • App Details: Download Synctrain on the App Store, Grab the source code at Github. Screenshots are provided to show the app's functionality.
阅读 3
0 条评论