feedhenry / fh-ios-sdk

FeedHenry iOS (Objective-C) SDK
http://feedhenry.org
Apache License 2.0
6 stars 16 forks source link

Proposal: Extract sync implementation to separate project #95

Closed wtrocki closed 6 years ago

wtrocki commented 6 years ago

Proposal

Rewrite and extract sync implementation into separate library. Port ObjectiveC code to swift. Integrate new library into fh-ios-sdk

Justification

Allow to use sync library without sdk Swift based implementation will help to gain more traction with community

Things to consider

Storage. Using core data, database etc. Background sync (research patterns on IOS platform) Possibility to use different storage solution for better performance.

Extraction should include:

I'm researching this at the moment to provide more information for this proposal.

wtrocki commented 6 years ago

FYI @aidenkeating @danielpassos @josemigallas @wei-lee

I'm researching this area at the moment. Going to update this proposal with more details and send it to aerogear community list for acceptance. Happy to incorporate any suggestions etc.

wei-lee commented 6 years ago

@wtrocki Thanks for the proposal. I think it's a good idea to extract sync out to its own (but not sure if it's own repo, or just a different sub folder). But there are a lot of stuff in your proposal here, and I think it will be hard to achieve all this in a single attempt.

So perhaps maybe let's take one step a time - the goal of the first step is to just make sure sync can work on its own, use the existing implementation as much as possible.

Once we have that, we can then decide what to do next - I believe most of the points you listed here are valid, but I think most of them require proposals on its own.

WDYT?

wtrocki commented 6 years ago

Great idea! I extracted existing code and were focusing on refactoring/changing things to swift, but actually we can do that in phases. I will change proposal to focus on this aspect only.

wtrocki commented 6 years ago

Extracted implementation and tested integration with JS sdk. However I think it will be the most important to provide proposals around entire IOS sdk into proposal area.

Current implementation is highly ineffective and written using old IOS patterns. Moving this to separate repository gives us no advantage. In fact it may make things more complicated.

Created some sample repositories to track this work. Migrated ObjectiveC repository: https://github.com/feedhenry/fh-sync-ios/pull/1

Swift repository that I'm using for experiments to create final proposal: https://github.com/wtrocki/aerosync-swift

wtrocki commented 6 years ago

Going to move this issue to aerogear proposals area for visibility. Closing for now.