移动应用程序开发 - 如何组织

时间:2016-07-01 15:45:36

标签: mobile architecture sequence development-environment

我今天要来,因为作为学生,我从未有过关于如何组织移动应用程序序列的任何课程。在互联网上也是如此,我找不到任何有趣的东西。所以我打开这个问题!

第一页

当我使用启动应用程序时,它在后台如何工作?

- > 该应用是否在LoginPage()上启动,并尝试连接到API/SERVER?一旦它完成,用户就会继续LoginPage(),或者应用程序继续MainPage()呢?

- > 该应用是否在RedirectionPage()上启动并尝试连接到API/SERVER?一旦完成,用户就会被重定向到LoginPage()上的MainPage()那么?

- > 该应用是否在MainPage()上启动并尝试连接到API/SERVER?一旦完成,用户就会继续MainPage(),或者如果用户未连接,应用会继续LoginPage()

当然,我们的想法是必须将用户存储在手机存储设备上(见下文)。

MainPage包含多个Page / View / Fragment

作为Android& Xamarin.Forms开发人员,我知道对于Android,你有一个FragmentManager来管理同一页面上的多个视图(即当你必须提供一个表格来填写用户)。在Xamarin.Forms上,它目前还不存在(但是Xamarin把它放在白名单上)所以也许对于其他语言来说,它也不存在。

- > 那么如何组织它?我的意思是,你可以有3个Views(3个mainLayout)并让它们Visible/Invisible 。但这意味着3 Controler只有1 Views

- > 我还认为可能,我们可以在后台加载每个页面避免 {{1}的负载} 时间?但是动态内存中的大部分信息都没有?

处理TCP / IP连接

今天,创建套接字以将自身连接到Navigation服务器并不难,但是如何处理不同的断开连接呢?

- >套接字错误。当您遇到停止的服务器等问题时,设备的互联网连接停止或出现问题以获取信号等。您如何应对?。我的意思是,你是否通过弹出窗口提醒用户,或者你是否尝试重新连接自己TCP/UDP

- > 现在说,由于互联网信号问题,设备无法将自身连接到服务器,因此设备永远无法连接到服务器。 您可以告诉用户,或者应用会继续尝试连接而不会超时吗?

存储数据

今天很多应用程序都在手机存储上保存了数据,但就此而言,是否必须为某些文件创建安全性?

- >用户:以我的方式,我将用户名/密码存储在手机存储上,以便在应用启动时始终逃避重新连接。但是,这些数据是个人的,是否必须加密?

- >首选项/设置和存储缓存:我认为对于他们来说,只需要加密即可直接存储XML等简单文件。但是,为了逃避每一次,加载数据,再次加入,将它们中的一部分直接存储在手机上是否更好?。如果这个解决方案与互联网的数据交换更便宜,那么如何组织他们的正确保存?。在很多情况下,这些文件的大小开始非常重要,然后,外部存储上的存储可能会更好,不是吗?但是,如果用户没有while(true)的内容,那么是否可以更改programmaticaly,即保存到内部存储的路径?

- >框架/语言选项:我知道在SD CARD中,可以使用 SharedPreferences 来使用{{1}来保存一些Android }。在Values中, Properties Dictonary 存在类似的内容。但是我想到了两个问题:是否可以从其他应用访问数据?数据是否已加密?。另外,使用这些功能,是否通过示例优化存储千位值?如果不是,那么它的优化范围是什么?

我知道很多问题,也许是愚蠢的,也许它们真的很常见,我不知道,但这些问题是我从未真正理解的一点,今天,我想要一个解释。

一个简单的答案可能是:阅读应用程序开发手册,但这是一个很大的阅读,让我自己比今天更加困惑。

感谢您阅读,如果您只是阅读或回答。我也希望,这些问题对于和我一样困惑的人会非常有用:)

1 个答案:

答案 0 :(得分:1)

有趣的问题和zaph的评论也很有趣!

我想说,与您的一些问题相关的移动开发有一个关键组成部分。也就是说,您的应用程序将使用的不仅仅是主线程(UI线程)。

例如,当您有一个启动页面并询问它应该如何构建时,您希望使用 async并等待。显示页面后(在XamarinForms中,您可能希望使用构造函数或onAppearing,具体取决于您的具体情况),您将希望让您的实际登录任务在UI线程上运行。在Xamarin中花费大量时间来做出关于异步,等待和UI线程的明智决策,以便为用户提供最佳体验,同时保持代码的可维护性和单元测试友好性。

由于您的帖子既严肃又听起来像企业开发,在谈论本地存储时,您需要查看SQLCipher,它将为您提供您正在寻找的静态加密。但是,每个目标操作系统每个开发人员需要花费500美元。

当然,您的一些安全决策需要受到您控制用户设备的密切程度以及是否通过应用商店分发应用程序的影响。

虽然我不确定我是否喜欢zaph对软件开发人员的概括,但你必须在解决问题方面具有创造性,并在经历中学习经验,而不是遵循一套书面规则。