本学期课程“ iOS应用程序开发”的毕业生,Technopark Mail.ru

这个季节,Technopark(鲍曼莫斯科国立技术大学)学期课程“ iOS上的发展”的一组新毕业生捍卫了他们的毕业项目。这是一个实验性的学期,所有课程都在线上。老师们选择了我们要告诉您的四个最有趣的解决方案:



  • 导师的私人老师应用程序。
  • 用于足球比赛的LocalFootball应用。
  • PhoRent应用程序用于设备租赁。
  • DeliciousThings应用程序,用于烹饪食谱。


导师的私人老师应用



学生越多,导师构造和存储所有累积信息的难度就越大。您必须将所有内容放在脑海中,或者在不同的媒体和格式上提出自己的存储方案,这很不方便。因此,他们创建了一个应用程序,他们将在其中存储和构建与导师的工作相关的所有内容。



该应用程序包含三个主屏幕:



  • 时间表,
  • 学生们,
  • 金融。




日程安排屏幕可帮助您快速查找特定日期的课程。标题从viewModel中以字符串的形式接收月份的名称(应用程序是根据MVVM架构模式编写的)。一周中的某几天是静态堆栈视图。每月的天数-collectionView,其中单元格数对应于所选月份的天数+相对于该月中一周中第一天的偏移量。



日历下方是一个tableView,其中包含有关当天课程的主要信息:学生的照片和姓名,课程名称,课程的时间和日期,课程的价格(如果支付了课程,价格标签将为绿色)。



学生屏幕用作所有学生的资料库,例如电话簿。这是一个全屏的tableView。使用相同的自定义单元格,仅填充不同的信息。



当您单击学生时,您将被带到应用程序中的他的个人页面。它包含了:



  • 有关已付班级和债务的信息。
  • 所有过去和即将上课的列表,按日期和时间排序。


stackView中有一个地图按钮,其中包含付费课程和债务的金额。单击它会打开一个基于MapKit的mapController,并用他的照片显示学生地址的位置。您可以在那里远足。



当您单击学生个人页面上的某些课程时,应用程序将打开一个单独的页面,其中包含有关该课程的所有信息:



  • 时间和付款状态。
  • 家庭作业。
  • 课堂笔记。
  • 在课程中添加了照片。






本课程页面包含以下块:



  • 最上面的是stackView,其中包含有关课程的序号,日期,时间和费用的信息。
  • 中等-具有水平滚动的集合,用于添加照片。
  • 底部的是三个带作业的textView,关于过去课程的注释以及用于将来推送通知的文本框。


最后,第三个主屏幕是财务屏幕在上半部分,为当月所有付费课程构建了一个图表,下面是按日期排序的这些课程的列表。可以列出所有未付费活动并将其显示在tableView中。







该应用程序是使用以下技术创建的:



  • 火力基地。
  • 核心数据。
  • MVVM。


Firebase数据库用于存储照片以外的所有学生和班级数据。此外,该数据库还允许您脱机工作而无需复制代码。Firebase云存储用于存储课程中的学生照片和快照,而使用CoreData可以离线处理照片。Firebase身份验证用于授权。至于架构,该项目是根据MVVM模式构建的



未来,作者计划为学生创建一个应用程序,并在导师和学生之间进行聊天。



项目团队:Vasily Sakharov,Nikita Pavlov。



项目保护



足球比赛的LocalFootball应用



球迷,球员以及锦标赛组织者本身都会对应用程序感兴趣。在这里,您可以看到所有必要的信息:



  • 比赛数据。
  • 排行榜有两种形式。
  • 最新的团队统计信息。
  • 比赛时间表和结果。






LocalFootball还可以将数据添加到日历中,并提前提醒您即将进行的比赛。



该应用程序具有以下架构:





该应用程序是使用以下技术创建的:



  • MVC +依赖注入
  • CoreData + FetchResultsController
  • SwiftyJSON
  • .xib +自动版式
  • SDWebImage
  • 事件包


该项目建立在MVC架构的基础上,为了避免这种模式的典型问题,作者:



  • 将所有ViewController的通用UI逻辑分为一个单独的超类;
  • 将带有日历的作品移至单独的模块中;
  • 每个表单元使用的配置程序类。


该项目还对网络层使用了依赖注入模式。并且使用测试数据创建易于配置的类有助于您测试不同的场景和错误处理。



CoreData用于在设备上存储数据并显示FetchResultsController。该界面使用.xib文件和AutoLayout构建。 SwiftyJSON用于解析数据,SDWebImage用于加载和显示图像,并且使用SwiftLint确保代码纯净。



由于用于显示团队和锦标赛屏幕的信息量很小,因此它们所需的所有数据都通过单个请求加载。通常还有很多匹配项,因此一次下载所有匹配项不是一个好主意。对于其他比赛,在应用程序中实现了分页。



将来计划:



  • 用花名册显示足球队的详细屏幕。
  • 添加具有当前比赛分数的推送通知。
  • 为锦标赛组织者创建一个单独的应用程序。


项目团队:Anna Akentieva,Daria Leonova,Danil Rogozin。



项目保护



PhoRent应用程序用于设备租赁



首先,创建了用于照相设备租赁的应用程序。如今,这已经是市场中一个引人注目的部分,但是尚无便利的专用应用程序。PhoRent可帮助您快速直观地查看要出租的设备,比较条件并下订单。





租赁项目分为几类。有一个搜索,并按租金价格和制造商筛选。您可以指定租赁单位的数量-最大值受数据库中当前余额的限制。您还可以在订单中指定租约的开始日期。首先将所有选定的物品放入购物车,然后用户支付总租金。该配置文件存储有关过去订单的信息。



但是,该应用程序不仅可以用于租借摄影器材,而且可以租借任何商品(除了房地产和运输业,在这些细分市场中已经有很不错的工具)。因此,PhoRent不仅可以作为需要租用物品的人使用的便捷工具,还可以用于需要扩展客户群的公司。



该应用程序是使用以下技术创建的:



  • 迅速。
  • 翠鸟。
  • Node.js。
  • FireBase。
  • FireStore。


该应用程序是根据MVP架构模式构建的它为各种任务增加了服务:



  • 用于创建窗口的ModuleBuilder,
  • 路由器之间的通讯和转换,
  • 用于联网的NetworkService。


没有使用情节提要,因此所有转换都在代码中进行,某些页面以xib呈现。



为了存储有关客户和订单的信息,使用了FireStore,其服务器部分是用Node.js编写的。在同一FireStore中,存储图像的URL,图像本身在FireBase存储中,并使用KingFisher将其加载到应用程序中。用户通过FirebaseAuth进行身份验证。



可以根据特定公司的需要定制表中带有产品的某些单元格。在用户个人资料中,您可以设置头像,并检查邮件地址和电话号码。



项目团队:Elena Kacharmina,Ilya Buzyrev,Alexander Setrov。



项目保护



DeliciousThings烹饪应用程序



作者对美味佳肴及其制作的热爱激发了他们的灵感。伙计们希望拥有自己喜欢的所有食谱,因此他们创建了一个方便的应用程序来存储它们,可以离线工作并自动计算菜肴的卡路里含量。



DeliciousThings还具有社交功能:用户可以共享食谱。有一个用户评分系统和喜欢食谱的能力。该应用程序允许您按成分(不仅是成分)进行搜索,以便从冰箱中的食物中制备出有趣的菜肴









整个接口在SwiftUI上创建。



项目团队:安东·乌卡诺夫(Ilton Shevchuk)。



项目保护



* * *



很快,我们将向您介绍Android开发,C ++,神经网络,前端开发,Go和接口创建中最有趣的毕业项目。您可以通过此链接阅读有关我们的教育项目的更多信息经常访问Technostream频道,并定期出现有关编程,开发和其他学科的新培训视频。



All Articles