Code Monkey home page Code Monkey logo

swift-test's Introduction

swift-test

关于编程题

由于登录与注册UI大致相似,所以这里用的是同一个界面。但是实际开发过程中,最好将登录与注册逻辑分开,用单独的控制器去承载。

登录的大概逻辑

检查用户名和密码框输入是否为空,如果为空,密码栏下方有一行红色文字,提示用户。先检查用户名,再检查密码。然后点击登录,登录的时候,第一步会检查当前用户名是否存在本地缓存中(注册成功后会存储在本地沙盒的plist中),如果查询不到,则提示,用户名不存在。如果查询到此用户名,则对比用户输入的密码与缓存中的密码是否一致,如果一致,弹框提示登录成功,进入下一界面,如果不一致,则显示密码错误。

注册逻辑

与登录界面类似,整体逻辑差不多。先检查用户名与密码是否为空,如果都不为空,第一步先检查缓存,是否存在此用户名,如果存在,则提示用户已经存在。如果不存在,则将本次用户名密码保存在本地,弹出提示注册成功。

记住密码

每一次用户登录成功后,将用户名,密码单独存储,下一次app启动或者重新进入登录页面时,会先查询本地保存的用户名与密码,如果两者都有值,则将数据赋值给对应的输入控件。这里都是明文保存,实际生产中,最好先加密然后存储。

关于理论题

设计一个用户数据同步系统。

首先第一点,允许应用在不同的设备和操作系统版本上无缝同步用户的数据,客户端可以考虑跨平台数据库如sqlite,前后端在设计数据库之前,确定好数据库需要的字段,并保持字段名称,类型一致,这样可以解决系统,设备差异性问题。

无论多端同时登录还是同时只允许一个端登录,网络通畅的条件下,如果发起端修改了数据,先调用服务器接口修改数据,调用成功后,发起端将本次修改存入本地数据库,服务器以推送或者socket的方式通知其他端(如果有),其他端直接将此次修改存入本地数据库或者重新拉取服务器数据,刷新界面。如果其他端退出登录,则重新登录时,先将服务器上的数据下载到本地,对比本地数据,进行同步。如果网络不佳,先修改本地数据库,同时加上待同步标签,等网络恢复正常时,先获取服务器数据,对比修改后,将之前待同步的数据提交给服务器,再删除本地待同步标签。

swift-test's People

Contributors

czlux avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.