Hello,

I like the idea of a new iOS SDK. Actually, I considered starting to work on 
something similar. Some comments, as reply to different mails and the google 
doc.

> AFNetworking or RESTKit

My intuition would be to use pure AFNetworking - last time I had a look at 
RESTKit it felt bloated. I'll have a second look at RESTKit, though.

> 3rd Party Libraries should be license compatible with Apache Usergrid 
> (preference for Apache 2.0).

AFNetworking is BSD [1]. Can anybody confirm BSD is "compatible" with the 
Apache license?
According to http://programmers.stackexchange.com/a/40580, it is. Apache's 
licensing FAQ are of no help [2], or I missed it.

> The one question I have is unit / e2e testing.

XCTest is supported by XCode out of the box. I personally tend to use Specta 
[3]. I'm fine with both.

> should have jSON parser

There's NSJSONSerialization [4], available since iOS 5. Also, AFNetworking can 
take care of this using AFHTTPSerializer, as described in [5].

> should have documented code with Doc Blocks etc

Yes, documentation should meet requirements of and show up at 
http://cocoadocs.org. Jazzy [6] looks nice, but did not work for me last time I 
tried. Appledoc [7] is still around, too.


What is the minimum iOS version supported by the new SDK?

I think iOS 7 and up is sufficient, but other people might have other 
requirements. This would be in line with requirements of AFNetworking version 
2.0 [8]. AFNetworking or not, my impression is that new code should use 
NSURLSession from the start instead of the older NSURLConnection. Latest 
RESTKit (0.23.3) is still using AFNetworking 1.3 [9] and thus NSURLConnection.


Then, I have a proposal which may need more discussion and explanation. For the 
project I am currently working on, I have the requirement that the app is 
supposed to work offline as well. I need to store all data in CoreData and 
synchronize if a network connection is available. I see that not everybody 
needs this functionality but maybe an offline mode/CoreData can still be 
supported, at least optionally.

I also like the idea behind AFIncrementalStore [10], which is based on 
NSIncrementalStore [11]. AFIncrementalStore is outdated and possibly 
incomplete, there are some newer forks [13, 14]. Personally, I would love to 
see a NSIncrementalStore based solution.

Greetings,
Jahn


[1] https://github.com/AFNetworking/AFNetworking/blob/master/LICENSE
[2] http://apache.org/foundation/license-faq.html
[3] https://github.com/specta/specta
[4] 
https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class
[5] 
https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide#serialization
[6] https://github.com/realm/jazzy
[7] http://gentlebytes.com/appledoc/
[8] http://nshipster.com/afnetworking-2
[9] https://github.com/RestKit/RestKit/blob/v0.23.3/RestKit.podspec#L49
[10] https://github.com/AFNetworking/AFIncrementalStore
[11] 
https://developer.apple.com/Library/mac/documentation/CoreData/Reference/NSIncrementalStore_Class/index.html
[12] https://github.com/AFNetworking/AFIncrementalStore/network
[13] 
https://github.com/Spaceman-Labs/AFIncrementalStore/tree/gs_threading_sorted

Reply via email to