HutHelper-Open

校园助手 iOS 端
授权协议 Apache
开发语言 Objective-C
所属分类 手机/移动开发、 手机相关软件
软件类型 开源软件
地区 国产
投 递 者 周辉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

校园助手iOS端

    项目框架

    .
        ├── HutHelper
        │   ├── 3rd:因为各种原因没有用Pods管理的第三方库
        │   ├── Utils:一些工具类等
        │   ├── Request:网络请求
        │   ├── Models:数据模型
        │   ├── View:界面,xib或者storyboard之类的文件
        │   ├── Supporting Files:一些支持文件
        │   └── Controllers
        │       ├── Main:主界面
        │       ├── Login:登录界面
        │       ├── Class:课程表
        │       ├── Score:考试成绩
        │       ├── Exam:考试计划查询
        │       ├── User:用户界面
        │       ├── FeedBack:反馈界面
        │       ├── Power:寝室电费查询
        │       ├── Set:用户设置界面
        │       ├── Lost:失物招领界面
        │       ├── Day:校历界面
        │       ├── HomeWork:网上作业界面
        │       ├── Hand:二手市场界面
        │       ├── Library:图书馆界面
        │       ├── Other:其他
        └── Pods:项目使用了[CocoaPods](http://code4app.com/article/cocoapods-install-usage)这个类库管理工具
        └── json:请求的示例数据

    请注意,因为使用了Pods,所以请下载完项目后先运行

    pod install

    注意事项

    • 考虑到在校用户信息的安全性,App的接口地址全部换成了镜像接口,与线上版本不同

    • 除此之外,一切和上线版本代码全部一致

    • 同时因为镜像接口的数据是固定的,所以测试时,登录界面,无论输入什么,点登录就可以

    • 课程数据,考试数据,用户数据,课表数据,说说数据,二手数据这些也都是固定的

    • 请求的数据可以在json文件夹中查看

    如果要进行二次开发,可以直接把请求的地址改成自己后端的地址,然后把接受的数据改一下即可.

    上架情况

    功能介绍

    登录界面

    登录界面采用简洁的方式展示。 用户输入学号和密码后,将通过JSON连接网络,得到Msg信息 如果成功--->存储Json至NSUserDefault 如果失败--->返回Msg提示信息

    主界面

    主界面是直接用xib做的,图片直接使用UI给的图片,另外的话有很多数据是在这个界面初始化的

    • viewDidLoad()方法中,需要计算APP打开的此时的周数,并且通过NSUserDefaults类将其数据存储到plist文件中

    • 判断是否为第一次登陆,是的话跳转到登陆界面

    • 判断设置中是否设置自动打开课程表,是的话跳转到课程表

    • 判断用户信息的标签是否上传

    • 初始化抽屉界面

    • ...

    成绩查询

    • 这里调用了UUCharView - 成绩曲线图标开源项目,展现了用户成绩数据,首先第一次打开这个界面会读取用户成绩数据,并缓存,后面几次打开时会直接读取缓存数据。如果需要刷新的话可以点刷新按钮。

    • 点右上角的按钮可以查询所有课程的成绩数据,同时也可以折叠数据。

    课程表

    这里使用了GWPCourseListView - 课程表界面开源项目,做了一些调整,并且修复了一些bug,开发者已经接受了我的pull。 同时自己集成了LGPlusButtonsView - 按钮控件开源项目的按钮控件,使课程表数据可以上下周的调整。

    • 另外加入了实验课程表,可以单独显示,也可以在设置里面设置成一起显示

    考试计划

    考试计划中将显示教务处正在计划和已经确定的考试 用的自定义tableview做的,很简单的绘制一个cell,然后将Json的数据与之交互

    电费查询

    简单的调用接口查询,没什么技术含量

    校园说说

    这个部分最大的问题就是适配的问题,有的图片多,有的文字多,怎么决定这个长度呢 所以我把每条说说分为四个部分,从上往下依次是 用户信息和文字/图片部分/评论数目部分/评论部分 这样首先根据文字的长度,分配第一个cell也就是文字的高度 然后根据图片的部分,分配第二个cell也就是图片的高度

    二手市场

    每个cell显示两个商品,很简单的做法

    图书馆/校园说说/二手市场/网上作业

    这两个部分因为没有接口,所以直接用web端做的

    项目使用的开源项目

    最后

    这是本人刚进大二,在湖南工业大学实验室写的一款App,目的主要是为湖南工业大学的学生提供一些便利,同时也是湖南省省级项目,App中有很多不足的地方,代码的可读性也不是很好,甚至于最开始的版本,网络请求都是同步请求,没有加载框,很容易卡死。但是不管如何,我都在完善。 这是开源的第一个版本,在后续每当上线版本有大的更新后,我都会同步发布在这里 其目的是,如果有其他学校的同学也需要开发一个服务于自己母校的iOS App,可以从这得到一定的参考 如果有任何问题也可以在issues留言

    License

    Apache Licene 2.0

    • 1.读写文件背景 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 2.open()、with open() 打

    • openLayers点击事件 interaction interaction是一个虚基类,不负责实例化,交互功能都继承该基类, 功能如下: doubleclickzoom interaction,双击放大交互功能; draganddrop interaction,以“拖文件到地图中”的交互添加图层; dragbox interaction,拉框,用于划定一个矩形范围,常用于放大地图; dragpa

    • 一、实验介绍 1、关于本实验 ​ 本实验主要介绍了openEuler操作系统的bash命令和文件管理命令。 2、实验目的 ​ 掌握bash命令的基本操作; ​ 掌握文件管理命令的常见操作。 二、bash命令基本操作 步骤1: ​ 启动openEuler虚拟机,并使用root用户身份登录虚拟机。 ​ 1、使用reboot命令重启openEuler操作系统 [root@localhost ~]# re

    • package com.example.ggq.gaoguoqing2018072403.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.support

    • open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):在使用该函数的时候,除了file参数必填外,其他参数可以选用。在本代码中对其他参数使用了默认值。 在使用open()的时候,如果文件不存在,那么将会返回IOError。 参数说明: file:

    • 最近在做一个爬虫,光想的从print里读实在是太麻烦了,就想把他写入在文件中,想到了用with open来进行操作 open open(file,mode = 'r') 完整的语法格式为 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

    •         这两天在使用Python的时候想使用open来打开一个文件。由于自己不清楚内建的open()和os模块的open()的区别。在项目中错用了os.open()当成了内建的open()使用,导致一直提示文件找不到。下面详细说说这两者的差异。 1、built-in  open()使用 def open(file, mode='r', buffering=None, encoding=No

    • 读写文件背景 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 open()、with open() 打开文件

    • 使用流程 打开文件,得到文件句柄,并赋值给一个变量 通过句柄对文件进行操作 关闭文件 具体用法 open(name, [, mode[, buffering]]) 参数说明: name: 一个包含了你想要访问的文件名称的字符串值 mode: mode决定了打开文件的模式,默认是r buffering: 如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会

    • 1.Shell概述 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口 Shell 将用户输入的命令并且把它们送到内核执行,然后返回执行结果 Shell 是可编程的,它允许用户编写由shell命令组成的程序 默认shell /etc/shells 当前登录用户默认shell echo $SHELL 当前shell echo $0 2.Shell脚本基础知识 1)解释器:Shell

    • 演示环境,操作系统:Win10 21H2(64bit);Python解释器:3.8.10。 open是Python的一个内置函数,一般用于本地文件的读写操作。with open不是一个整体,是使用了with语句的open函数。with open可以说是open的优化用法或高级用法,相比open更加简洁、安全。open函数必须搭配.close()方法使用,先用open打开文件,然后进行读写操作,最后

    • Openlayers 概述 地图控件 导航控件、ZoomSlider、鼠标位置、比例尺、鹰眼、图层选择。 常用的到是鹰眼控件(使用场景:当地图进行缩放移动时,鹰眼控件可以清楚方便的知道地图所在位置)。 地图操作 1. 基础操作** :单击缩小、单击放大、平移到某个位置、复位; 2. 设置地图背景** ; 3. 地图定位**:view.setCenter(ol.Coordinate|unde

     相关资料
    • 面试官挺好,也挺温和的,我代码题没敲出的,也很耐心。 但是可能对我不感兴趣吧,全程节奏有点迟缓,像是在想怎么问我,有点停顿。 有一个稍微好点的实习。。。感觉代码菜也会落差更大的样子。。。 面试问题: 1.自我介绍(补充叫我介绍一下校园经历) 物联网专业用什么语言开始代码题了。。。 2.二叉树遍历 3.普通的查找字符串,输出序号;设计测试用例;优化方向:查找算法 反问: 快手主要是做app端,音频部

    • Open-Source iOS Apps A collaborative list of open-source iOS, iPadOS, watchOS and tvOS apps, your contribution is welcome (project website) �� Jump to Apple TV Apple Watch Browser Calculator Calendar

    • 对齐 我们使用几个简单的类来是你的页面进行对齐。 垂直对齐 通过增加 valign-wrapper 类来使包裹的内容垂直居中。 <div class="valign-wrapper"> <h5 class="valign">这个应该垂直居中对齐</h5> </div> 文本对齐 这些类用于水平对齐内容。我们有 .left-align, .right-align 和 .center-align <d

    • 💥💥💥专属内推码【DSyjD21W】,免筛选直通测评! 面试总共氛围4分部分,分别是自我介绍、hr提问、hr对公司介绍、反问。 【自我介绍】 这个部分我我介绍了我的学校专业、过往实习经历,最后说了我为什么想要来参加shein校园大使。(这个部分可以着重突出你的优势,比如你的院校是不是target school,自身在运营上的擅长、对shein的了解等等) 【hr提问】 SHEIN的hr感觉都

    • 关于电子校样颜色 在传统的出版工作流程中,通常会打印出文档的印刷校样来预览该文档在特定输出设备上重现时的颜色外观。在色彩管理工作流程中,您可以直接在显示器上使用颜色配置文件的精度来对文档进行电子校样。您可以显示屏幕预览来查看文档颜色在特定输出设备上重现时的颜色外观。 请注意,电子校样的可靠性取决于显示器的质量、显示器和输出设备的配置文件以及工作环境的光照条件。 注意:使用胶印机打印时,只用电子校样

    • 问题内容: 我正在做SharedPreferences帮助器类,以使我的代码看起来不错。 问题是我应该使这些方法静态化并在每个方法中初始化SharedPreferences还是更好地使其不处于静态状态并从其他类中调用一次SharedPreferencesHelper类?谢谢 问题答案: 我不会引用上下文。我宁愿将和及其作为您的帮助器类的静态成员。这样,您无需在每次需要读取/写入时都实例化。进一步的