• Stars
    star
    168
  • Rank 225,507 (Top 5 %)
  • Language
    Objective-C
  • Created over 10 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bible Assistant App

圣经小助手

帮朋友开发的应用,因为用了 CocoaPods ,请注意打开 Bible Assistant.xcworkspace 工程。

此应用可在 App Store 免费下载:https://itunes.apple.com/cn/app/sheng-jing-xiao-zhu-shou/id851014654?l=en&mt=8

UI 设计

使用 Storyboard,采用 Tabbed Application 模版,分为 5 个部分:

  1. 圣经:书签,圣经卷、章的选择,文本阅读;
  2. 金句:随机从圣经中选择某一个小节显示;
  3. 搜索:对圣经进行全文搜索,高亮关键字;
  4. 音频:音频的下载和管理;
  5. 设置:音频等偏好,一些信息。

iOS 7 的基本风格,力求简洁(没有专业设计师)。另外,大部分圣经文本显示都支持 iOS 7 的字体大小偏好。

逻辑设计

基本就是使用 UICollectionViewController 和 UITableViewController 。

跳转

包括从金句、书签、音频跳转至对应的圣经文本,还有非初次打开时跳转至上次阅读处。

主要实现是在对应的 ViewController 里设置 TabBarController 的 selectedViewController

self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];

然后用 NSNotification 附带 Location 再深入到圣经阅读界面。

注意圣经在第 0 个,所以这样写没有问题,如果是在其它 Tab,就要换一种办法。

单例

用单例实现 BADownloadManagerBAAudioPlayer ,才好全局“下载”和“播放”。

其中下载的进度和播放的进度都用 NSNotification 传递,减小耦合。

数据模型

普通代码里主要用 NSDictionary 传递数据,没有特别封装,浏览代码时稍微注意即可。

Core Data 模型:

  • BibleAudio:保存音频信息,下载的音频数据用 BAAudioSaver 写入 Library/Caches ;
    • 注意使用了 BibleAudio+BAAdditions 扩展,封装一些常用操作。
  • Bookmark:保存书签信息。

其它

圣经是 XML 格式,且在多处使用,为了减少内存占用,公用 BAAppDelegate 的 ONOXMLDocument *bible 实例。

第三方库

  • Ono:用于解析 bible.xml,提供数据源
  • MagicalRecord:更便捷地使用 Core Data
  • SGNavigationProgress:在 NavigationBar 上显示音频播放进度
  • MBProgressHUD:状态提示
  • FFCircularProgressView:用于实现带进度的下载按钮
  • Reachability:查看网络的可访问状态

More Repositories

1

dev-blog

翻译、开发心得或学习笔记
3,938
star
2

MonkeyKing

MonkeyKing helps you to post messages to Chinese Social Networks.
Swift
2,753
star
3

Proposer

Make permission request easier.
Swift
855
star
4

Coolie

Coolie(苦力) helps you to create models (& their constructors) from a JSON file.
Swift
507
star
5

KeyboardMan

KeyboardMan helps you to make keyboard animation.
Swift
351
star
6

Sensei

Sensei is a Mac app based on OpenAI API.
Swift
274
star
7

Baby

Create models from a JSON file, even a Baby can do it.
Swift
219
star
8

Wormhole

A more elegant way for message passing between iOS apps and extensions.
Swift
172
star
9

Ruler

Size matters, you need a ruler.
Swift
159
star
10

Navi

Focus on avatar caching.
Swift
115
star
11

AudioBot

AudioBot helps you do audio record & playback.
Swift
38
star
12

Redstone

Redstone has a State Machine
Swift
37
star
13

SharedBaby

Baby's web interface.
Swift
29
star
14

nixBoard

一块简易的围棋棋盘
JavaScript
25
star
15

HelloMou

The translation(Chinese) of Markdown Editor Mou's Hello.md
21
star
16

GentleTouch

Touch yourself, with WATCH.
Swift
19
star
17

Ananda

JSON model decoding based on yyjson.
Swift
16
star
18

AdaptiveChartDemo

Generate chart image from simple data, for WATCH
Swift
15
star
19

computation

Understanding Computation: From Simple Machines to Impossible Programs
Swift
14
star
20

AppClip

Create Web Clip for App.
Swift
14
star
21

rushGo

围棋急速入门,关于围棋的介绍,使对围棋感兴趣的人对围棋的规则有个快速了解。
12
star
22

nixhttpd

简易的http服务器以及测试环境
C
11
star
23

KeypathObserver

KeypathObserver helps you do KVO observing.
Swift
11
star
24

nixGoBoard

在iOS上实现的棋盘应用,可用于在生活中遇到某个围棋爱好者时,将iPad当做棋盘来一局,仅此而已。
Objective-C
11
star
25

SuperPreview

SuperPreview for Image Preview
Swift
8
star
26

AutoReview

AutoReview has a nice logic for show prompt of app review.
Swift
8
star
27

PropertyListenerDemo

Listen, they're changed!
Swift
7
star
28

MentionInUITextViewDemo

Detect mention in UITextView
Swift
7
star
29

TextureDemo

Swift
5
star
30

algorithm-playgrounds

Try some algorithms
Swift
5
star
31

AutoLayoutInUIScrollView

AutoLayout in UIScrollView Demo
Swift
5
star
32

StateMachineDemo

Simple State Machine Demo
Swift
5
star
33

coolie-cli

Coolie's command-line interface
Swift
5
star
34

WorkerBee

WorkerBee is a toolkit
Swift
4
star
35

CenterTwoViewsUseAutoLayout

AutoLayout Tip 1
Objective-C
4
star
36

42

The answer to life, the universe and everything.
3
star
37

NotificationCenterDemo

Swift
3
star
38

sgf2asy

转换sgf格式的围棋棋谱为asy矢量格式的脚本
Python
2
star
39

Girl

A HTML Parser
Swift
2
star
40

nixzhu.github.io

HTML
1
star
41

code-reading

Notes from code reading
1
star