7
CHAPTER 2
THEORETICAL FOUNDATION
2.1 Theoretical Foundation
This chapter describes the theoretical foundation with detailed explanation that will
be used in this thesis. The theoretical foundation will be used for the author to support
the design of solution for the problem and it will also benefit for the readers so they can
understand the theory behind the solution for this thesis.
2.1.1 Mobile Device
In this thesis, there are three types of mobile device that are going to be used. The
first one is iPhone, a mobile phone, the second one is iPod touch, and the last one is
iPad, a tablet PC.
2.1.1.1 Mobile Phone
Mobile phone is an electronic portable device which main functionality is similar
with home telephone but without need of cable to do the phone call. The first mobile
phone is invented by Dr. Martin Cooper from Motorola in 1973 [4]. In the earlier
development, mobile phone only can be used to make phone calls, however, mobile
phone like other technologies has evolving from time to time with more capabilities and
functionality. Short Message Service (SMS), Multimedia Messaging Service (MMS),
listening to radio and browsing the Internet are the capabilities examples of the mobile
phone evolution.
8
2.1.1.1.1 Mobile Phone Type
With wide array of capabilities of mobile phone, mobile phone is divided to
following categories [5]:
1. Basic Mobile Phone or feature phone: It is a mobile phone that can do basic
functionality of a phone such as telephone calls, SMS, and MMS. Newer basic
mobile phone support Internet service capabilities such as web browsing, and e-
mail.
Example: Nokia 2600, Nokia 1650, Nokia 2760
2. PDA: PDA (Personal Digital Assistant) is a palm size, small device that has
capabilities of what a basic computer can do. PDA can do computation task, fax
sender, and used as a personal organizer. In the earlier development, PDA does
not have phone or fax capabilities. PDA is more used to do computation task
rather than communication. Therefore, PDA today can be called as PDA Phone
or just PDA. There is a variant of PDA that called Pocket PC. Actually Pocket
PC is just a term used by Microsoft to call their PDA with Windows Mobile OS.
Example: HP iPAQ Mobile Messenger, Palm Treo 700p
3. Smartphone: It is a mobile phone that has capabilities that combine from PDA
and basic mobile phone. Smartphone can do computation task like PDA do and
can do phone capabilities like basic mobile phone. iPhone that used in this thesis
is categorized in Smartphone category.
Example: iPhone 4, iPhone 3GS, Acer Liquid E, Nokia E71, Blackberry 9700
9
2.1.1.1.2 iPhone
iPhone is a multimedia-smartphone that combines an iPod, a tablet PC, a digital
camera and cellular phone made by Apple. iPhone is basically the term from Apple for
all of Apple mobile phone device. There is several type of iPhone, however, the iPhone
type from one to another basically an evolution of iPhone. The first iPhone is iPhone 2G
which unveiled on January 2007 and released on June 2007. The second one is iPhone
3G which added new features such as 3G capabilities and integrated GPS, released on
July 2008. The third one is iPhone 3GS which is an upgraded version of iPhone 3G with
some new features such as better processing speed and camera quality released on June
2009. The fourth one is iPhone 4 or 4G that was released on June 2010. The iPhone 4 is
the first iPhone with Retina display (the high-resolution screen for iPhone). The last one
is iPhone 4S, released in 2011. All iPhone has same navigation characteristic which has
multi-touch screen capabilities and without physical keyboard. iPhone 4S has same
physical design with iPhone 4 / 4G.
Figure 2.1 iPhone Picture From 2G to 4G [5]
10
The summary of each iPhone comparison is shown in Table 2.1.
Table 2.1 iPhone Comparison Chart [7]
11
2.1.1.1.2.1 Application
The iPhone, which is categorized as smartphone, has various application type or
categories that it supports. The iPhone supports capabilities of what basic computer can
do. Below is the list of application type that iPhone can support:
1. Internet Browsing and Networking Capabilities: User can browse the Internet
using iPhone cellular network or using WLAN.
2. Multimedia: iPhone can be used for watching video, listening music, viewing
picture or photo, reading books or magazine, and playing video games.
3. Document Editor: iPhone can be used to read the document and edit it. iPhone
supports most of popular document format that computer has (e.g.: .doc, docx,
.pdf)
4. Navigation: iPhone that has integrated GPS chip can do navigation like the
actual GPS device.
5. Sync and Backup: There are iPhone application that can do syncing or backing
up the data to or from computer or the Internet.
6. Social Networking: iPhone application can be integrated with social networking
such as Facebook or twitter so user do not need to go to the respective social
networking website.
2.1.1.1.2.2 Operating System: iOS
Mobile phone just like computer also has operating system to control the mobile
device. Different mobile phone may have different operating system. The operating
system will determine the behavior, function and features available on the mobile phone
such as navigation of the phone [8]. Mobile operating system also determines what
12
third-party application can be used for specific device. Some of mobile operating
system is considered as manufacturer-built proprietary operating system, third party
proprietary operating system and free & open source operating system [9]. The
manufacturer-built proprietary operating system can only be used on manufacturer
product devices. Third party-proprietary operating systems can be run on other device
but the manufacturer of the device must pay for the license to run the operating system
to their product devices. For free & open source operating system, as it name describes,
it can be run on any mobile phone without need to pay for license. Example of
manufacturer-built proprietary operating system is Apple iOS, RIM BlackBerry OS, and
HP WebOS. For third party-proprietary operating systems there are Microsoft
Windows Mobile and Windows Phone 7. Google Android, MeeGo, and Symbian are
considered as free & open source operating system.
All iPhone operating system is using Apple iOS. Because Apple iOS is also
manufacturer-built operating system, Apple iOS is only run on Apple products. Each
generation of iPhone is come with different iOS when published, however, previous
generation iPhone can be upgraded to later version (limited upgrade). There are 5
versions of iOS that has been released by Apple so far [10]:
1. iOS Version 1: This is the initial iOS version when the first iPhone (iPhone 2G)
is launched. This iOS only run application from Apple, there is no third
application support yet for this iOS.
2. iOS version 2: This iOS is the initial iOS when iPhone 3G is released. This iOS
has features that make iPhone user can buy apps from third party application
using App Store. Furthermore this iOS, provide GPS support for iPhone 3G.
13
3. iOS Version 3: iPhone 3GS is released using this iOS version. This iOS support
new features such as MMS support, tethering iPhone, voice memo, use keyboard
in landscape mode and IMAP e-mail.
4. iOS Version 4: This iOS is the initial iOS when iPhone 4 is released. This iOS
overcome the multitasking ability that previous generation iOS is lack of. Other
smaller improvement are toggle cellular data on and off, character count for
SMS messages and SMS search, addition of zoom support when taking photos,
ability to sync events, resizing photo when sending.
5. iOS Version 5 : This iOS is released in 2011 along with the release of iPhone
4S. This iOS have several new functionality such as iMessage (a messenger that
can connect between all iOS 5 users), iCloud (a storage in the internet (cloud)
that can be sync to all devices (Mac, iPad, iPhone, and iPod), and Notification
Center (a new feature that can collect all notifications in only one place).
2.1.1.1.2.3 Connectivity
Connectivity in mobile phone is important. It can be used to transfer data from one
device to another. iPhone supports most of connectivity that are being used in current
Smartphone. Below are the lists of connectivity that iPhone supports:
1. GSM: GSM or Global System for Mobile Communication is a standard
communication protocol for mobile phone. For Internet connectivity, GSM has
3 different classes: GPRS, EDGE, 3G (HSDPA). GPRS or General Packet
Radio Service is the slowest one, which has speed around 32 – 48 kbps. EDGE
(Enhanced Data Rates for GSM Evolution) speed is in the middle with speed up
to 384 kbps. The fastest one is 3G (HSDPA, High-Speed Downlink Packet
14
Access) with speed up to 14.4 Mbps. See Table 2.2 to compare GSM
connectivity that each iPhone has.
Table 2.2 iPhone GSM Connectivity Comparison Chart
GPRS EDGE 3G (HSDPA)
iPhone 2G V V X
iPhone 3G V V V
iPhone 3GS V V V
iPhone 4 V V V
iPhone 4S V V V
2. CDMA: CDMA or Code Division Multiple Access is a digital cellular
technology that uses spread-spectrum techniques. CDMA is different with GSM
but the role to the mobile phone is the same (as a communication protocol).
iPhone only has two type that use CDMA which are iPhone 4 and iPhone 4S.
3. WLAN: Wireless LAN use Wi-Fi (wireless fidelity) connection to connect one
device to other. With WLAN, one device can connect to other without cable.
When the device connects to Internet hotspot using WLAN, the device will be
able to use the Internet connection from that hotspot. There are four classes of
WLAN that mobile phone can support: 802.11a, 802.11b, 802.11g, and 802.11n
[11]. The main different between each class is range and speed. iPhone 2G,
iPhone 3G, and iPhone 3GS are only have 802.11b, and 802.11g WLAN
standard. Only iPhone 4 and iPhone 4S that has 802.11b, 802.11g, and 802.11n.
No iPhone has 802.11a WLAN standard.
15
4. Bluetooth: Bluetooth is a short-range radio technology that enable device to
communicate or transfer data with other Bluetooth device. All iPhone has
Bluetooth connectivity.
5. USB: USB or Universal Serial Bus is an external bus standard that support
transfer data between two or more connected devices. With this USB port,
iPhone can connect to other device such as computer to transfer or exchange
data.
In this thesis, the application needs Internet connectivity, thus the iPhone will
connect to the Internet either using GSM, CDMA, or WLAN.
2.1.1.2 iPod Touch
iPod touch is a mobile device from Apple that has operating system just like iPhone
but it is not considered as mobile phone because it does not have GSM or CDMA
connectivity. In other words, iPod touch cannot be used for phone call and SMS. With
having same operating system, it makes iPod touch has same functionalities with iPhone
(exclude the phone features). iPod touch is considered as multimedia mobile device
because it is mostly used for gaming, listening to music, watching video, and other
functionalities of common multimedia device.
16
Table 2.3 iPod Touch Comparison Chart[12]
iPod touch has similar hardware including the appearance like iPhone. The hardware
specification can be seen in Table 2.3 iPod Touch Comparison Chart. Due to price
factor differences and similarities of software and hardware between iPhone and iPod
touch, most iOS developer that does not have iPhone can test the application using iPod
touch.
17
2.1.1.3 Tablet PC
Tablet PC is a kind of notebook (or netbook) computer that has an LCD Screen on
which the user can navigate using stylus, or just using finger touch. The first
development of tablet PC is on 1888 when electrical engineer Elisha Grey got patent for
an electrical-stylus device for capturing handwriting [13]. Even though since that time
the tablet pc has been evolved from time to time, it is not till 2010 that tablet pc
popularity is began to rise. The launch of the first iPad from Apple in 2010 marks the
rising era of tablet pc. In 2010 also, other vendor began releasing their tablet PC (e.g.:
Samsung with their Galaxy Tab).
18
2.1.1.3.1 iPad
iPad is a tablet pc made by Apple. The first iPad is released on March 2010. The
second one, which is iPad 2, is released on March 2011.
Figure 2.2 iPad and iPad 2 [14]
19
The specification of iPad and iPad 2 can be seen on Table 2.4.
Table 2.4 iPad and iPad 2 Specification [15]
20
The application that iPad can support basically is the same like iPhone because iPad
also has same operating system which is the iOS. The connectivity of iPad is divided by
two versions. The first type of iPad is Wi-Fi, it can only connect to the internet using
Wi-Fi. The second type of iPad is Wi-Fi + 3G. With Wi-Fi + 3G, the iPad has
capabilities to connect internet with GSM or CDMA connectivity.
Beside the similarities of application, operating system and connectivity that iPhone
and iPad has, those two has differences. The first difference that easily can be seen is
the screen size. iPad has larger than iPhone screen, iPad screen almost like netbook
screen size, around 10 inches and iPhone only 3.5 inches. This is due to iPad is
considered as a tablet PC so it main functionality is as computer daily use and iPhone is
a smartphone where it is mainly use for communication. The other difference is iPad
does not have capabilities of basic mobile phone communication. iPad cannot do
telecommunication call and cannot do text messaging (SMS) even if it has SIM Card (in
Wi-Fi + 3G model).
21
2.1.2 Technology
In this thesis, there are several technologies that support the solution of the problem.
The technologies include the technique and the tools that needed to implement the
solution.
2.1.2.1 Objective-C
Objective-C is an object oriented programming language based on C that primarily
used to code for Mac OS X and iOS. Objective C has powerful extension to the standard
ANSI C language. Like other object oriented development environment, Objective C
consist of several parts [16]:
An object-oriented programming language
A library of objects
A suite of development tools
A runtime environment
2.1.2.2 Model View Controller Pattern
iOS programming use Model View Controller pattern. Model View Controller means
every object created will be exactly consist one of the following: a model object, a view
object, or a controller object [17].
View objects: An object that visible to the user (button, label, windows are all
view objects).
Model objects: An object that holds data and do not know anything with the user
interface. Example of model objects is an array of String object.
22
Controller objects: An object that keep view and model object in sync, control
the “flow” of the program, and save the model objects out to the file system.
2.1.2.3 Cocoa Environment
Cocoa is an application environment for Mac OS X and iOS. Cocoa consists a set of
object-oriented software libraries, a runtime system, and an integrated development
environment. Cocoa has a set of object-oriented frameworks that provide runtime
environment for application running in Mac OS X and iOS. Cocoa is the ultimate
application environment for Mac OS X and the only application environment for iOS.
Example of Cocoa application that can be seen in Mac OS X and iOS are Mail, and
Safari.
Cocoa presents two types of environment like other application environment. Cocoa
has a runtime aspect and development aspect. In its runtime aspect, Cocoa applications
present the user interface and are closely integrated with other visible component of OS.
In the development aspect, Cocoa is an integrated set of object-oriented software
component that enables developer to build robust, full-featured Mac OS X and iOS
applications. These classes are reusable and adaptable software building blocks
(developer can use or extend them for specific requirement).
What makes a program considered as a Cocoa program is when the program
composed of objects that inherit from the root class, NSObject, and that are based upon
the Objective C runtime.
23
2.1.2.3.1 Cocoa in iOS
The application framework layer of iOS is Cocoa Touch. The architecture of Cocoa
Touch in iOS can be seen in Figure 2.3.
Figure 2.3 Cocoa in the Architecture of iOS [18]
In cocoa architecture, there are often dependencies between components at one layer
to another layer below it. The following are the explanation summary of each layer [18]:
Core OS: This layer consist of the kernel, the file system, the network
infrastructure, security, power management, and device drivers. This layer also
has libSystem, which supports POSIX/BSD 4.4/C99 API specifications and
includes system-level API for many devices.
Core Services: This layer provides core services such as String manipulation,
collection management, networking, URL utilities, contact management, and
preferences. GPS, compass, accelerometer and gyroscope services are also
provided by this layer. This layer includes framework that provides abstraction
for common data types (Strings and collections): Foundation and Core
Foundation framework.
24
Media: The framework and services in this layer rely on the Core services layer
and provide graphical and multimedia services to the Cocoa Touch Layer. This
layer contains Core Graphics, Core Text, OpenGL ES, Core Animation,
AVFoundation, Core Audio, and video playback.
Cocoa Touch: The frameworks in this layer directly support applications based
in iOS. They include frameworks such as Game Kit, Map Kit, and iAd.
The Cocoa Touch layer and Core Services layer both has an Objective C framework
that is very important to develop iOS application. There are two Core frameworks from
Cocoa for iOS: UiKit and Foundation. Beside two Core frameworks that Cocoa
provides, there are many frameworks that can help developer to create sophisticated
application such as Media Player, Quartz Core, CoreGraphics, Security, System
Configuration, and Message UI framework.
2.1.2.3.1.1 UIKit Framework
This framework provides the objects an application displays in its user interface and
give description the structure for application behavior (including event handling, and
drawing). iOS application cannot be developed without UIKit framewok. UIKit object
can be added by using the following method:
Use the Interface Builder development application to drag windows, views,
button, text field and other objects from an object library.
Create, move, manipulate the objects programmatically
Implement custom user-interface objects by subclassing UIView or classes that
inherits from UIView
25
2.1.2.3.1.2 Foundation Framework
Foundation framework defines the foundation layer of classes that can be used for
any type of Cocoa program. This framework provides the basic behavior of objects,
establishes mechanism for their management, and provides objects for primitive data
types, collections, and operating system services. Foundation framework is very
important object oriented version of the Core Foundation framework.
2.1.2.3.1.3 Media Player Framework
The Media Player framework provides facilities for playing movie, music, audio
podcast, and audio book files [19]. This framework also supports application to access
the iPod library, so developer can find and play audio-based media items. The class that
usually used in this framework is MPMoviePlayerController to play streamed video
content.
2.1.2.3.1.4 Quartz Core Framework
The Quartz Core framework is a framework that supports an application for image
processing and video image manipulation [20]. With this framework, developer is able
to create simple animation in the application.
2.1.2.3.1.5 CoreGraphics Framework
The CoreGraphics frameworks provides low-level, lightweight 2D rendering with
unmatched output fidelity [21]. This framework is used to handle path-based drawing,
transformations, color management, off-screen rendering, patterns, gradients and
shadings, image data management, image creation, masking, and pdf document
creation, display, and parsing.
26
2.1.2.3.1.6 Security Framework
Security framework is an API framework that is used to protect information and
control access to software [22].
2.1.2.3.1.7 System Configuration Framework
This System Configuration framework provides functionality to determine the
reachability of target hosts in synchronous or asynchronous connection. This framework
also provide error detection feature [23].
2.1.2.3.1.8 Message UI Framework
This framework provide specific view controller to show standard interfaces for
email and SMS (Short Messaging Service) text messages. These interfaces provide
messages delivery capabilities for email and SMS without leaving the app [24].
2.1.2.4 Development Environment
To develop Cocoa Software, there are two primarily developer application: XCode
and Interface Builder, one performance analysis tool: Instruments and Apple LLVM
Compiler as the compiler.
27
2.1.2.4.1 XCode
XCode is the Apple’s IDE (Integrated Development Environment) to develop
application for Mac OS X and iOS. XCode is an application that manages of most
project details from beginning to deployment. The use of XCode[18]:
Create and manage projects, including specifying platforms, target requirements,
dependencies, and build configurations.
Write Source code in editors with features such as syntax coloring and automatic
indenting
Navigate and search through the components of a project, including header files
and documentation
Build the project locally
Debug the project locally, in iOS Simulator, or remotely in graphical source-
level debugger.
XCode builds project from source code coded in C, C++, Objective C and Objective
C++. XCode is particularly appropriate for Cocoa development. When creating a
project, XCode assembles initial development using project templates complement to
Cocoa project types: application, document-based application, Core Data application,
tool, bundle, framework. and others.
28
To build an iOS application (iPhone and iPad), the XCode needs to have the iOS
SDK (Software Development Kit). The iOS SDK will provide everything required
developing an iOS application. The SDK consists of frameworks, libraries, header files,
and system tools. The iOS SDK of iPhone is included when installing the XCode.
XCode can only be run on Mac OS X. (XCode 4 can only be run in Mac OS X 10.7
Lion).
Starting from XCode 4.2, developer does not need to maintain the memory
management because the compiler now have feature called Automatic Reference
Counting (ARC). With this feature, developer does not need to care when to release the
memory.
2.1.2.4.2 Interface Builder
Interface builder is a graphical tool for creating user interfaces. Interface builder has
main four design elements [18]:
Nib Files: A file wrapper that contains object appearing on a user interface in an
archived form. The archive is an object graph that holds information about each
object, including size and location, and the connection between objects.
Object Library: This library from Interface Builder provides objects that can be
out on the interface of the application. Object that can be put are UIObjects
(windows, controls, menus, text views, and outline views) controller objects,
custom view objects, and framework-specific objects. Object can be dragged and
dropped using Interface Builder.
29
Inspector: Inspector is a window for setting up the objects of a user interface.
With inspector, developer can change the attribute or properties of a user
interface object by go to inspector window of the object and change the attribute
in inspector window.
Connections panel: The connection panel is a panel that presents the current
outlet and action connections for a selected object and allow developer to
manage the connections.
Interface builder is closely integrated with XCode. Interface builder “knows” about
the outlets action, and bindable objects properties of custom classes. When there is
change (adding, removing, modifying) of an object, Interface Builder detects those
changes and updates its presentation of them.
2.1.2.4.3 iOS Simulator
The simulator is used to debug and test the application before deploying it to real
device. When building and running the project, XCode runs simulator that shows the
application with the appearance of real device (iPhone and iPad). With the simulator,
developer can manipulate parts of the user interface. Even though simulator can be used
for debugging, simulator cannot perfectly imitate real device. For example, the
navigation in Simulator uses mouse pointer not finger touches, and multi touch features
is not supported when debugged in Simulator.
30
Figure 2.4 iPhone Simulator in XCode
2.1.2.4.4 Instruments
Instruments is a tool introduced in XCode 3.0 that lets developer to run multiple
performance-testing tools simultaneously and view the results in a timeline – based
graphical representation [18]. Instruments can show CPU usage, disk reads and writes,
memory statistics, thread activity, garbage collection, network statistics, directory and
file usage, either in Mac or remotely from a connected iPhone. Instruments will help
developer to have great application with good user interface accompanied equally by
impressive responsiveness.
31
2.1.2.4.5 Apple LLVM Compiler
Apple LLVM compiler is compiler technology created by Apple. The compiler is
used to build C/C++ and Objective-C powers Xcode’s indexing engine, providing
incredibly accurate code completions. [25] Apple LLVM Compiler is constantly
evaluating what developer type, identifying the mistakes and give solution to fix the
mistakes.
2.1.2.5 RSS
RSS is an XML-based format and it can be distributed in various ways for content
distribution (mostly used for distributing news headlines on the Web) [26]. Website that
supports for RSS feed usually has RSS feed icon (see Figure 2.5).
Figure 2.5: RSS icon
There are various acronyms that RSS stands for [27]:
Really Simple Syndication
Rich Site Summary (RSS 0.91)
RDF Site Summary (RSS 0.9 and 1.0)
Real-Time Simple Syndication (RSS 2.0)
32
Even though there are many acronyms for RSS, the purpose of RSS is the same: to
get news from selected website to be directly delivered to user monitor.
RSS can be generated by various RSS Feed generators such as Wordpress, Blogger,
TypePad, MySpace, etc. Wordpress can support RSS 2.0, RSS 0.92 RSS 1.0 and Atom
Format. This thesis uses Wordpress feed because the client’s website use Wordpress as
Content Management System and already provide RSS feed.
2.1.2.6 Podcast Radio
The term podcasting is derived from Apple’s iPod and broadcasting so it means
broadcasting an audio file. Podcasting is a new way of online media delivery.
Podcasting is combined with RSS feed so user who subscribe to that RSS feed can listen
that audio files without the need to follow another link for listening the audio files.
Podcasting is popular for broadcasting radio program or online talkshow. Podcasting
involves creating the audio files (most popular is mp3 format) and then publish it on the
net, indexed for subscription and reception by RSS reader [28].
33
2.1.2.7 UML Diagram
UML (Unified Modeling Language) diagram is a graphical notation or a diagram to
illustrate or describe a software system in terms of objects in a standardized notation. In
UML Diagram, there are symbol or icon of standardized notation (e.g.: diamond shape
symbol for decision in flow chart). There are various types of UML diagram: class
diagrams, sequence diagrams, activity diagrams, state diagrams, and use case diagram.
In this thesis the UML diagram that will be used are [29]:
Use Case Diagram: A type of UML diagram that shows the interaction between
the system, external system and the users of the system. It graphically describes
who will use the system and how the user expects to interact with the system.
The use case narrative is used to support the use case diagram. Use case
narrative describes the diagram textually in the sequence of steps of each
interaction.
Activity Diagram: A type of UML diagram that describes the sequential flow of
activities of a use case or a process.
Class Diagram: A type of UML diagram that describes the system’s object
structure. The diagram shows each object classes that the system is composed of
and the relationship between those object classes.
Sequence Diagram: A type of UML diagram that shows the dynamics of
particular scenario. Sequence diagram is used to describe communication or
interaction between objects via messages in the execution of a use case or
operation.
34
2.1.3 Third Party Open Source Code
2.1.3.1 HTML Parser Code
For dealing with HTML content and display it in application with proper format, the
HTML content need to be parsed correctly. Rather than creating new HTML parser with
trial and error, the author uses solution from the Internet. There are two HTML parser
found that sufficient to parse HTML content correctly. The first one is written by Ben
Reeves [30] and the second one is from Michael Waterfall [31]. The HTML Parser in
this thesis is combined from both solutions.
2.1.3.2 ShareKit Code
ShareKit code is an open source API to share item (e.g.: link, image, file) for iOS.
ShareKit code is initially created by Nate Weiner and distributed via gitHub [32].
However, since November 2010 the original author has not continued the ShareKit and
some of ShareKit code became obsolete and cannot be used (due to new iOS, and new
code regulation from respective social media). Thus the ShareKit Code in this
application is modified from the original ShareKit, although still uses ShareKit core. The
ShareKit code in this application is used to share via Twitter and e-mail. Facebook is not
used using ShareKit because it is already obsolete and cannot be used.
35
2.1.3.3 Facebook Connect Code
Facebook Connect code is official API from Facebook for iOS application. The latest
Facebook Connect code is connected to Facebook application for iOS so user need to
login to their Facebook application to authorize using Facebook Connect. If the user has
not installed Facebook application, the authorization will take place in browser. The
Facebook Connect code can be downloaded in gitHub [33].
2.1.3.4 PullToRefresh Code
PullToRefresh code is a simple TableViewController code for adding pull-to-refresh
functionality created by Leah Culver [34]. Some of the code is modified to fit the need
for this application.
2.1.4 User-Centered System Design (UCSD) Methodology
UCSD or User-Centered System design is the methodology used in this thesis.
UCSD is the type of system design that focuses on the user preferences and
requirement. There are four key features of UCSD [35]:
A central focus on the people who will use the systems (user), their preferences
and requirement
Building simple models of the users, the tasks and the technological systems
An iterative process
Prototyping and the evaluation of alternatives by users.
36
The flow chart of UCSD can be seen in Figure 2.6.
Figure 2.6 User-Centered System Design Process
Description of the flow [36]:
1. Task Analysis: An analysis to gain deeper understanding of the tasks to be done
(To get clear understanding what clients or user want)
2. Requirements Gathering: A task to get what the system should do without give
explanation of the how it is implemented.
3. Design & Storyboarding: It provides developer to visualize the design and
review it, quickly and cost effectively with users.
4. Prototype Implementation: A prototype of the system is implemented so user can
usefully test it.
Task analysis
Requirements gathering
Design and storyboarding
Prototype implementation
Evaluation
Installation
Observation of existing systems
Usability guidelines
& heuristics
Problem statement
Technical & legal etc.
constraints
HTA
Requirement statement Functional
Non-functional
Storyboard
Prototype
Transcript &
evaluation report
Final
implementation
37
5. Evaluation: The evaluation of the prototype needs to be done. It provides
tangible evidence of how a system is actually used. If the prototype is not
fulfilling the requirement yet, it will go back to earlier steps and iterate.
6. Installation: After several or more iteration and the prototype meets the entire
requirement, the fully featured prototype is deployed or installed and ready to be
used.
2.1.5 Software Testing
Software testing is used to test whether the system or software is passed several
requirements or several standards. In software testing there is a scenario of the test that
is often called test plan. In the test plan there is a list of steps to do the test, and expected
result when doing the testing. If the test is result is not the same with the expected
result, then there is something wrong with the code and need to be fixed.
Functionality Testing
Functionality testing is a testing whether the system or software is fulfilling the
business requirement functionalities.
Compatibility Testing
Compatibility testing is a testing whether the system or software is compatible with
different platform, operating system or hardware.
User Acceptance Testing
Acceptance Testing is the last step of software testing where a system or software is
tested for acceptability by the client or the user.