使用哪个数据库适用于iOS和Android?

6

我正在开发一款移动应用,需要存储用户数据,当应用关闭并重新打开后,数据将自动显示。我想知道对于像在游戏开发中存储高分数这样的需求,哪种数据库适合iOS和Android上的初学者来开始使用?


有几种选择... 如果您希望远程托管数据,则建议使用MySql或Microsoft SQL。如果您想在设备上托管数据,则使用SQLite。 - Chris Stillwell
1
你为什么认为只是追踪少量用户得分就需要数据库呢? - rmaddy
8个回答

5

SQLite 在 Android 和 iOS 中都得到支持。


3

iOS使用Core Data,Android使用SQLite。


2

2

2

iOS重要提示:请勿使用NSUserDefaults,因为它可以被编辑(黑客攻击),这将破坏您的用户在GameCenter中的体验,因为早晚会有人黑掉它并设置最大值,在许多游戏中都可以看到这种情况,他们在游戏中心中拥有荒谬的分数。

SQLite是一个不错的选择,但它也是可编辑/可黑客攻击的,因为几乎总是以类似语法的文本文件存储数据。

我建议使用任何可以进行加密的选项。


2
如果您只需要存储一个或几个分数,可以将它们放入iOS Keychain中。
如果需要保存更多数据,则可以使用加密密钥在Keychain中保存加密文件。一个不错的加密选择是RNCryptor,它适用于多种语言和平台,并且可以完成所有必要的安全包装。
如果需要数据库,有几个版本的SQLite提供了加密功能。
另一个选择是在保存时计算哈希值,将哈希值保存在Keychain中,在读取时再次计算哈希值并将其与Keychain中的哈希值进行比较。如果哈希值不匹配,则分数已被篡改。

2

你是否考虑过使用类似于FirebaseParse的云平台?它们可以为你处理所有数据存储的繁重工作;设置相当简单,且都有良好的文档支持。


-1

如果你只想存储最近的高分,那么在iOS上使用Core Data就有些大材小用了。我建议像在NSUserDefaults中存储高分值这样的数值。

我相信在Android开发中也有类似的选项。


类似的选项是SharedPreferences。它是一个简单的键/值存储,非常适合这种情况。 - Lucas Crawford
1
@MSU_Bulldog NSUserDefaults是可被黑客攻击的,我不建议在这种任务中使用它。 - Juan Boero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接