第一次尝试Obj-C的开发,求客户端数据层的设计方案?

2013-02-04 22:29:54 +08:00
 notedit
背景: 没有Obj-C的开发经验 只看了些Obj-C的基础 想在两个月的业余时间之内完成一个App的开发

现在的需求:

根据做后端的经验,我会把数据的访问封装起来供视图层调用.在客户端也想这样设计,但没有经验.

现在的一个想法是 使用restkit的model map 来做Model的解析 从api取得数据之后转化为数据Model, 然后把这些数据的操作全部封装到一个类中

不知道有没有更好的方案或者更好的类库可以使用.


另外这个项目是自己第一次App开发的尝试,希望能遇到一个有经验的App开发者可以带我一下.
没有直接金钱上的回报,但我可以教你python或者帮你做后端 然后做做朋友.
6611 次点击
所在节点    iDev
35 条回复
notedit
2013-02-05 11:35:29 +08:00
@PrideChung 能给个使用你这种方法的例子么 或者 开源代码
notedit
2013-02-05 11:39:58 +08:00
@ewangke 谢谢你的建议 因为我现在找不到很多设计资源 所以做法是先用原生UI 把原型做出来 然后找设计设计UI.

我的应用相对小一些 可能你说的第三种方案最适合我 在建立model方面能不能给我一点代码看
krafttuc
2013-02-05 12:25:47 +08:00
我觉得Cheddar for iOS(https://github.com/nothingmagical/cheddar-ios)的代码挺清晰的,可以参考看看。数据层用的是Core Data,见CheddarKit。
整个过程基本上就是用AFNetworking拉数据,解析,然后扔到Core Data做持久化。如果用到table view之类的还能用NSFetchedResultsController delegate来更新UI。
notedit
2013-02-05 15:16:54 +08:00
@krafttuc 谢谢 我看一下
ydhydh
2013-02-05 16:12:54 +08:00
JSONModel 是个不错的选择
https://github.com/icanzilb/JSONModel
ydhydh
2013-02-05 16:16:42 +08:00
如果需要CoreData, 推荐看下:
https://github.com/keithpitt/DKPredicateBuilder
https://github.com/keithpitt/DKCoreData
主要是查询的链式语法
ewangke
2013-02-05 16:29:25 +08:00
@myrual
@alexrezit
@PrideChung
刚学的两个中文术语,我是指Reflection/Introspection,详见:
http://www.mirageapps.com/whats-new/articles/introspection-reflection-and-swizzling-in-objective-c

Model的例子,可以看看这个(需要你手写每个Model的类,这样才有compile time的checking):
https://github.com/MugunthKumar/MKFoundation
ewangke
2013-02-05 16:30:23 +08:00
@ydhydh 我说的就是这个意思:)
CoreData有些重,不喜欢
ewangke
2013-02-05 16:41:51 +08:00
想试试Core Data,可以用MagicalRecord
https://github.com/magicalpanda/MagicalRecord
ewangke
2013-02-05 16:43:58 +08:00
@notedit 这种先实现后UI的方式,个人玩玩还行。
做产品会死翘翘的,尤其在一个稍微大点(>=10?)的团队中。
BigZ
2013-02-05 17:06:34 +08:00
你想的太复杂了
ios主要考虑UI展现和交互的问题

千万不要自己写entity class,用list或者dict足以,要持久化存储就用plain 文件或者sqlite
chisj
2013-02-06 12:16:15 +08:00
@ewangke 握手,我就是1和3结合,其实怎么快怎么简单就怎么用。
写太多模式,反而复杂了,不喜欢。
lldong
2013-02-06 12:23:39 +08:00
推荐GitHub的Mantle,轻量方便
notedit
2013-02-10 15:04:20 +08:00
@lldong 最终选择了 AFNetworking + Mantle 的方案

第一个版本先怎样简单怎样来了

谢谢大家
jackfan
2013-02-11 07:30:23 +08:00
用core data是disaster

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/59781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX