Vous êtes sur la page 1sur 9

www.brainvire.

com | 2013 Brainvire Infotech Pvt Ltd




Page 1 of 9





















































Case Study

Password Security System



www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 2 of 9




































This is a Mobile application created to run on both
iOS (iphone / iPad) and Android (SmartPhones /
Tablets)-based operating systems. This application
can be used for multiple purposes including
corporate meetings and e-learning. Client wanted to
launch an innovative concept of automatic video
creation out of text written on the board. The
application is also capable of capturing audio.

PasswordBoss is a free password manager that
allows users to securely store, retrieve and share
usernames, passwords and other personal data
anytime, anywhere, on any device.

Client Requirement
Client required the following:

1-Tap login to mobile apps
and websites.
Automatically saves your
logins while you browse
Passwords encryption with
AES-256, the strongest
grade of encryption
Secure SSL protection for
data during sync between
devices
Create new strong
passwords and save them
while you browse
Locked with a Master
Password that only YOU
know
Optional Pin Code Lock for
additional security
Secure password sharing
and management, for
sharing passwords with co-
workers or family
Instant Login to your
accounts using our secure
in-app browser
Encrypted Safe Notes for
sensitive personal
information
Customizable StartPage for
accessing your most-
visited sites with 1-Tap
Auto-Lock function to
safeguard against theft
ProjectChallenges
Team faced the following challenges:
Recording of audio and text in the background to create MPEG Video.
Timely Audio-video synchronization
Sync between web application and phone device.
Smooth writing on the board while video recording is occurring.




www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 3 of 9




Technologies Used


















Manpower










IOS SDK: Xcode 5.1 Xcode is a tool, also called as IDE, used to develop iOS and Mac
applications. It is a main component of Xcode toolset. It groups most
of the tool needed to develop software in a streamlined and interactive
manner.
Core Data Framework The Core Data framework provides generalized and automated
solutions to common tasks associated with object life-cycle and object
graph management, including persistence.
Database: SQLite


The SQLite database is a small, compact, and self-contained database
available on multiple platforms and available to the public. It has a
small footprint and is easy to install and administer. In addition, many
devices have the SQLite database already installed, including Android
and Blackberry devices.
Encryption: SQLCipher SQLCipher is an open source extension to SQLite that provides
transparent 256-bit AES encryption of database files.
Android ADT Eclipse
Plugin
Android Development Tools (ADT) is a plugin for the Eclipse IDE that
is designed to give you a powerful, integrated environment in which to
build Android applications.
Programing Languages IOS: Objective C
Android : Java
MVC The modelviewcontroller framework separates the representation of
information in a computer program from the user's interaction with
it.The model consists of application data and business rules, and the
controller mediates input, converting it to commands for the model or
view.

Project Leader

1

Developers

6

Designers

1

Quality Assurance Testers

2


www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 4 of 9


Planning
The following development approach was adopted to equip the site with numerous
features and functionality mentioned before:


Development High Level Coding Standards were followed for managing backup data volume.
Simultaneously, synchronization with server for recent data modulations was also performed.

Syncing existing and newly available data for backup with our database required specific
attention. This helped in result generation.

Designing the application interaction and flow for user-friendliness and interactivity.

Introduced high level of server and data fetching technology.

Syncing existing and newly available data for backup with our database required specific
attention. This helped in result generation.

Maintained consistency in Graphical appearance with the help of given wireframe.

Milestones were defined to complete each inter-linked assignment. Continuous data
synchronization between the mobile device and server was required at every interval.

Research and analysis were scheduled at every project level to effectively manage the quality
and workflow processes for better and improved performance.


Architecture

IOS
Application Life Cycle
The application life cycle constitutes the sequence of events that occurs between the launch and
termination of your application. In iPhone/iPad OS, the user launches the application by tapping its
icon on the Home screen. Shortly after the tap occurs, the system displays some transitional
graphics and proceeds to launch your application by calling its main function. From this point on,
the bulk of the initialization work is handed over to UIKit, which loads the applications user
interface and readies its event loop. During the event loop, UIKit coordinates the delivery of events
to your custom objects and responds to commands issued by your application. When the user
performs an action that would cause your application to quit, UIKit notifies your application and
begins the termination process.

The following figure depicts the simplified life cycle of an iPhone application. This diagram shows
the sequence of events that occur from the time the application starts up to the time it quits. At
initialization and termination, UIKit sends specific messages to the applications delegate object to
let it know what is happening. During the event loop, UIKit dispatches events to your applications
custom event handlers.












www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 5 of 9






Figure: Application life cycle



Event Handling Cycle

After the UIApplication main function initializes the application, it starts the infrastructure needed
to manage the applications event and drawing cycle, which is depicted in the following figure. As
the user interacts with a device, iPhone/iPad OS detects touch events and places them in the
applications event queue. The event-handling infrastructure of the UIApplication object takes each
event off the top of this queue and delivers it to the object that best suited to handle it. For
example, a touch event occurring in a button would be delivered to the corresponding button
object. Events can also be delivered to controller objects and other objects indirectly responsible
for handling touch events in the application.

Figure: The event and drawing cycle

In the iPhone OS Multi-Touch event model, touch data is encapsulated in a single event object
(UIEvent). To track individual touches, the event object contains touch objects (UITouch), one for
each finger that is touching the screen. As the user places fingers on the screen, moves them


www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 6 of 9








around, and finally removes them from the screen, the system reports the changes for each finger
in the corresponding touch object.
When it launches an application, the system creates both a process and a single thread for that
application. This initial thread becomes the applications main thread and is where the
UIApplication object sets up the main run loop and configures the applications event-handling
code. Figure shows the relationship of the event-handling code to the main run loop. Touch events
sent by the system are queued until they can be processed by the applications main run loop.

Figure: Processing events in the main run loop



The MVC Architecture is a combination of Model-View-Controller.

1. Model: The model object knows about all the data that need to be displayed. It is model
who is aware about all the operations that can be applied to transform that object. It only
represents the data of an application. The model represents enterprise data and the business
rules that govern access to and updates of this data. Model is not aware about the
presentation data and how that data will be displayed to the browser.

2. View: The view represents the presentation of the application. The view object refers to the
model. It uses the query methods of the model to obtain the contents and renders it. The
view is not dependent on the application logic. It remains same if there is any modification in
the business logic. In other words, we can say that it is the responsibility of the view's to
maintain the consistency in its presentation when the model changes.

3. Controller: Whenever the user sends a request for something then it always go through the
controller. The controller is responsible for intercepting the requests from view and passes it
to the model for the appropriate action. After the action has been taken on the data, the
controller is responsible for directing the appropriate view to the user. In GUIs, the views
and the controllers often work very closely together.











www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 7 of 9












Android
Android Architecture Diagram:

The above figure shows the diagram of Android Architecture.
The Android OS can be referred to as a software stack of different layers, where each layer
is a group of several program components.
Together it includes operating system, middleware and important applications.
Each layer in the architecture provides different services to the layer just above it. We will
examine the features of each layer in detail.


www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 8 of 9


Linux Kernel
The basic layer is the Linux kernel.
The whole Android OS is built on top of the Linux 2.6 or higher Kernel with some further
architectural changes made by Google.
It is this Linux that interacts with the hardware and contains all the essential hardware
drivers.
Drivers are programs that control and communicate with the hardware. For example,
consider the Bluetooth function.
All devices has a Bluetooth hardware in it. Therefore the kernel must include a Bluetooth
driver to communicate with the Bluetooth hardware.
The Linux kernel also acts as an abstraction layer between the hardware and other
software layers.
Android uses the Linux for all its core functionality such as Memory management, process
management, networking, security settings etc.
As the Android is built on a most popular and proven foundation, it made the porting of
Android to variety of hardware, a relatively painless task.

Libraries
The next layer is the Androids native libraries. It is this layer that enables the device to
handle different types of data.
These libraries are written in java language and are specific for a particular hardware.
Some of the important native libraries include the following:
o Surface Manager: It is used for compositing window manager with off-screen buffering. Off-screen buffering
means you cant directly draw into the screen, but your drawings go to the off-screen buffer. There it is
combined with other drawings and form the final screen the user will see. This off screen buffer is the reason
behind the transparency of windows.
o Media framework: Media framework provides different media codecs allowing the recording and playback of
different media formats
o SQLite: SQLite is the database engine used in android for data storage purposes
o WebKit: It is the browser engine used to display HTML content
o OpenGL: Used to render 2D or 3D graphics content to the screen
Android Runtime
Android Runtime consists of Dalvik Virtual machine and Core Java libraries.

Dalvik Virtual Machine
It is a type of JVM used in android devices to run apps and is optimized for low processing
power and low memory environments.
Unlike the JVM, the Dalvik Virtual Machine doesnt run .class files, instead it runs .dex files.
.dex files are built from .class file at the time of compilation and provideshifger efficiency in
low resource environments.
The Dalvik VM allows multiple instance of Virtual machine to be created simultaneously
providing security, isolation, memory management and threading support. It is developed
by Dan Bornstein of Google.

Core Java Libraries
These are different from Java SE and Java ME libraries. However these libraries provides
most of the functionalities defined in the Java SE libraries.

Application Framework
These are the blocks that our applications directly interacts with. These programs manage
the basic functions of phone like resource management, voice call management etc. As a
developer, you just consider these are some basic tools with which we are building our
applications.
Important blocks of Application framework are:
o Activity Manager: Manages the activity life cycle of applications


www.brainvire.com | 2013 Brainvire Infotech Pvt Ltd


Page 9 of 9






Content Providers: Manage the data sharing between applications
o Telephony Manager: Manages all voice calls. We use telephony manager if we want to
access voice calls in our application.
o Location Manager: Location management, using GPS or cell tower
o Resource Manager: Manage the various types of resources we use in our Application





DevelopmentHighlights
This application for iPad is built around objective C and core data framework. This application
was also made compatible to iOSsdk 5.1 at a later stage. Almost all the modules are developed
using foundation, core graphics, UIKIT and AVAssetWriter framework. All the user interface
items are placed in view controllers and are linked with the controller files project along with
the outlets, actions of the UI element. Integration of various 3rd party tools was required. The
App was developed and fully functional within a span of 5 months.

Special focus on interactivity and user friendliness of the app while designing the Android and
IOS application.

Mobile and Tablet Compatibility with a single application build

Database Encryption at Local and Server Side

Agile development strategies implemented using various proven tools thus ensuring quick and
effective solutions.

Optimal usage of open source technologies to reduce the total cost of android application
development.

Unit testing applied to ensure the quality of the application.

Vous aimerez peut-être aussi