GSoC/2021/StatusReports/LucasWang
KDE Connect iOS <> Status Report & Reflections
Key Links, Locations, and People
- GSoC Project Link
- KDE Connect iOS 2021 Repository (currently separate from the KDE Connect iOS 2014 repository)
- Network Tester repository, for testing various frameworks to judge their feasibility for integration with KDE Connect iOS
- Articles, Documentation, and Blog Posts about KDE Connnect iOS
- Mentor: Inoki
- Mentor: Philip
- The KDE Connect Development Telegram
How It Started
As of April 2021, the iOS KDE Connect application possesses several issues:
Outdated UI design and features such as optimizing for newer aspect ratios, icons, fonts, and accessibility, etc.
The app is lacking many core functionalities of KDE Connect that other currently available versions have. Since Apple has implemented many of those features into iOS since 2014, the app would now be able to use them to offer the missing functionalities.
The backend portion of the app that governs LAN network communications is currently functioning inconsistently and only under a very specific series of actions.
The goal of this proposal is to address the problems listed above with an "analysis and rewrite" process of much of the app’s current code base with the newest Apple development language and UI framework, Swift and SwiftUI. Aside from solving the immediate problems with the current app, rewriting the foundation in Swift and SwiftUI would give the codebase a strong footing to expand and adapt to future contributions. SwiftUI’s cross-platform deployment capabilities also give the possibilities for forks of the codebase for other Apple platforms such as macOS and watchOS.
As such, the initial proposal, finalized in early April, outlined the following goals and deliverables:
- A completely revamped interface of the KDE Connect iOS application written in SwiftUI and adhering to the newest iOS design language.
- Additional functions were added to the new app to match the core functionalities present on other versions of KDE Connect such as the Android version.
- A revised network communications backend.
- Documentation of the unit testing done throughout the project and, using the Android KDE Connect as a reference, document the state and progress of the iOS version.