Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swift SDK & Sample #1621

Merged
merged 157 commits into from
Mar 27, 2023
Merged

Swift SDK & Sample #1621

merged 157 commits into from
Mar 27, 2023

Conversation

NumericalMax
Copy link
Contributor

@NumericalMax NumericalMax commented Feb 1, 2023

Flower Swift SDK

About
The branch implements the Flower SDK for Swift based on the initial draft examples/ios.

Additional
It includes an iOS sample application called FLiOS with benchmarking functionality for testing the SDK.

Major Changes

  1. Moving initial implementation of the Swift SDK from examples/ios to src/swift
  2. Extension of the existing SDK so that it fits to the proto of Flower 1.0
  3. Fixing race conditions and threading bugs
  4. Provide a standard implementation of the client protocol within the SDK such that loading data or wrapping layers does not need to be implemented in the client application - unless there is specific need for customization
  5. Unit tests of the Swift SDK. It may require extension due to medium test coverage
  6. Basic documentation of the Swift SDK code
  7. Providing FLiOS - a sample app with benchmark functionalities for testing and benchmarking purposes
  8. The file examples/ios/server.py has been streamlined for the sole purpose of running the FL process
  9. Included Github Actions to unit test the Swift SDK

How to test
Move to the folder examples/ios and open the file FLiOS.xcodeproj with XCode. Run the application FLiOS on a simulator or a physical device with iOS version 14 or higher. Execute the server/python script examples/ios/server.py. Go through the sequential steps of FLiOS and adjust the server hostname and port accordingly before starting the federated learning process. For test purposes, the standard MNIST sample is used.

Remark
Github Actions for automatically running lint operations to look for possible code flaws, are not included in this PR.

NumericalMax and others added 30 commits December 16, 2022 11:26
Moved iOS SDK from example to src
Moving the reference from the local folder iOS SDK to the newly created iOS SDK under src/swift/flwr.
Upgrade Transport Proto to Flower 1.0
added supported platform (with version)
remove duplicate code for server.py and adapt config parameter
Protobuf to own struct and vice versa
@tanertopal tanertopal enabled auto-merge (squash) March 27, 2023 15:47
@tanertopal tanertopal enabled auto-merge (squash) March 27, 2023 15:53
Copy link
Member

@tanertopal tanertopal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huge PR. Thank you for the great work!

@tanertopal tanertopal merged commit d70f67f into adap:main Mar 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants