project report on ios app development

41
SRM University Kattankulathur, Chennai, India An Internship Report On iOS Application Development Submitted to SRM College of Engineering Computer Science and Engineering Department In partial fulfilment of the requirements for the degree of B.Tech program under SRM University Submitted By Arpan Sarkar

Upload: arpan-sarkar

Post on 19-Feb-2017

1.189 views

Category:

Documents


106 download

TRANSCRIPT

Page 1: Project Report on iOS App Development

SRM UniversityKattankulathur, Chennai, India

An Internship Report

On

iOS Application Development

Submitted to SRM College of Engineering

Computer Science and Engineering Department In partial fulfilment of the requirements for the degree of B.Tech program

under SRM University

Submitted By

Arpan Sarkar

Page 2: Project Report on iOS App Development

STEFANINI INDIA PVT LTD.

An Internship Report

On

iOS Application Development

Submitted to Stefanini India Pvt Ltd.

In partial fulfilment of the requirements for the degree of B.Tech program under

SRM University

Submitted By

Arpan Sarkar

Page 3: Project Report on iOS App Development

Acknowledgement

I am thankful to SRM University for providing me an opportunity to pursue this internship training and gain the knowledge related to the program.

I am especially indebted to all my teachers for instilling in me enough knowledge to be able to carry myself efficiently during my internship.

Secondly, I am bound to thank to all the staff of Stefanini India Pvt Ltd., especially Mr.Shankar Sarkar who helped me acquire this internship in this esteemed organisation. Also Mr. Ajay Kota whose inspiring guidance, remarkable suggestions, constant encouragement, keen interest, constructive criticism and friendly discussions helped me to learn and enabled me to complete this training efficiently.

Last but not the least, I would like to thank all my friends and family who have supported me to complete this report by sharing their views and idea.

Thanking You

Arpan Sarkar

Page 4: Project Report on iOS App Development

Executive Summary

The internship report is the necessary part of the B.Tech program, and every

student has to do internship in some organisation related to his/her field of interest.

After successful completion of the internship work a student is required to write

whatever practices and practical work he has done in his training duration.

Internship was my first step in practical life, through which I learnt a lot and it has aided me in being well equipped with valuable experience that would help me once I enter the professional life after the completion of my studies. Internship offered to me was 30 days in training and operations.

During the time between of 26-May to 26- June, I worked in Stefanini India Pvt Ltd as an intern. It was a great experience for me. What I learnt at Stefanini over the weeks was how to get along with the co-workers, building confidence and improving my skills. I tried to remain to the point, in writing the report. An overview of the organisation future Prospects and recommendations are also given in the report.

This work is the collection of my observation and experience during the internship period and afterwards. This internship has also prepared me for my career ahead. The experience has taught me responsibility, teamwork and how to tackle problems occurring. Even though the nature of work was quite basic as an internee, nevertheless I got to see what practical life is. This report gives a profile of Stefanini India Pvt Ltd and an insight into the department where I worked. This report also reflects my learnings and experience at ITC PSPD Ltd along with my responsibilities and the tasks that I performed.

Page 5: Project Report on iOS App Development

Table of Contents

1. Objective of the internship2. Overview of Organisation - Services3. Overview of the work performed - Job details4. About Apple5. The MAC6. The MAC OS

7. The iPhone

8. iOS 8.1. iOS Introduction 8.2. iOS Architecture9. Xcode 9.1. Xcode Introduction 9.2. Getting familiar with Xcode environment10. Developing an App

11. The Currency Converter App 11.1. Design & Navigation 11.2. Screens 11.3. Into the code12. Publishing your app in the App Store

13. Issues and Problems

14. Core Theoretical Concept Vs Practical Experience

15. Conclusion

16. References

Page 6: Project Report on iOS App Development

1. Objectives  of  the  Internship  

This internship was done as a partial fulfilment of my B.Tech course under SRM

University. The main objective of this internship program is to provide the student a basis

or platform to understand the real world problem and its solution methodology. It

facilitates the students the ability to relate theoretical knowledge with practical

experience, to get outer exposure and to study the market trends. For me, the main

objective of this internship program was to understand how the different operations are

carried out inside a company. How such large and huge data are regularly operated and

maintained to give 24X7 services to the customers. I also have gained knowledge about

how information flow from one department to another with the help of intranet . Besides

this, I developed the skill to self detect faults and finding a proper solution to it with at

most patience in both technical and no technical issues.

The specific objectives of the study are :

i. To implement the theoretical knowledge in the real world environment.

ii. To build up confidence , interpersonal and communication skills.

iii. To understand how resource sharing is done in a real working environment.

iv. To gain knowledge about application development and its various technical

terms.

v. To know how documentation is done, records are created and maintained and

security consideration is implemented.

vi. To increase a sense of responsibility and acquire good work habit.

Page 7: Project Report on iOS App Development

2. Overview of organisation:

The Stefanini is a multinational Brazilian private, service provider, software for data processing and consulting, based in Jaguariuna / SP.

Founded in 1987 by current president Marco Stefanini, has subsidiaries in 33 countries (including India).

Stefanini is considered one of the largest IT consulting firms in the world, was identified as the first in the list of the best outsourcing companies in Latin America, the study of the Black Book of Outsourcing.

In 1989 it opened its first office in the state of Sao Paulo. The following year, the company started the development and maintenance of systems, becoming in 1994 one Software Factory with the development of customised software for systems and applications. After the year 2000 Stefanini opened offices in eight countries in four years.

Page 8: Project Report on iOS App Development

Services

The company provides a number of services to its customers. A few of them are listed below:

1.Enterprise Mobility Services

1.1 User Experience Design Services

1.2 Mobile App Development

1.3 Enterprise Mobile Management

1.4 Managed Mobility Services

2. SAP Consulting Services

3. Application Outsourcing Services

3.1 Application Management Services

3.2 Custom Software Development

4. SharePoint Services

4.1 Custom SharePoint Development

4.2 SharPoint Intranet Design and Optimisation

4.3 Enterprise Content Management

4.4 SharePoint Deployments and Upgrades

5. Mainframe Services

5.1 Mainframe Development and Maintenance 5.2 Mainframe Optimisation

5.3 Mainframe Modernisation

5.4 Mainframe testing

5.5 Mainframe Migration

6. Digital Media

Page 9: Project Report on iOS App Development

3. Overview  of  the  Work  Performed  

I have completed the internship Program as per details below:

Course Title : Mobile Application Development

Location(Company, City , Country) : Stefanini Pvt Ltd, Hyderabad,

India

Job Details

I was assigned to perform the intern in Stefanini, Hyderabad unit,

where various operation of networking and system management is

performed by skilled manpower. I was assigned to work with the

iOS Mobile Application Development Team headed by Mr. Ajay

Kota who was also my mentor for the training duration.

Page 10: Project Report on iOS App Development

About  Apple  Apple  Inc.  is  an  American  mul3na3onal  technology  company  headquartered  in  Cuper3no,  California,  that  designs,  develops,  and  sells  consumer  electronics,  computer  so=ware,  online  services,  and  personal  computers.  Its  best-­‐known  hardware  products  are  the  Mac  line  of  computers,  the  iPod  media  player,  the  iPhone  smartphone,  the  iPad  tablet  computer,  and  the  Apple  Watch  smartwatch.  Its  online  services  include  iCloud,  the  iTunes  Store,  and  the  App  Store.  Apple's  consumer  so=ware  includes  the  OS  X  and  iOS  opera3ng  systems,  the  iTunes  media  browser,  the  Safari  web  browser,  and  the  iLife  and  iWork  crea3vity  and  produc3vity  suites.  

Apple  was  founded  by  Steve  Jobs,  Steve  Wozniak,  and  Ronald  Wayne  on  April  1,  1976,  to  develop  and  sell  personal  computers.[5]  It  was  incorporated  as  Apple  Computer,  Inc.  on  January  3,  1977,  and  was  renamed  as  Apple  Inc.  on  January  9,  2007,  to  reflect  its  shi=ed  focus  towards  consumer  electronics.  

Apple  is  the  world's  second-­‐largest  informa3on  technology  company  by  revenue  a=er  Samsung  Electronics,  world's  largest  technology  company  by  Total  Assets  and  the  world's  third-­‐largest  mobile  phone  maker.  

The  MAC  The  Macintosh  (branded  as  Mac  since  1998)  is  a  series  of  personal  computers  (PCs)  designed,  developed,  and  marketed  by  Apple  Inc.  Steve  Jobs  introduced  the  original  Macintosh  computer  on  January  24,  1984.  This  was  the  first  mass-­‐market  personal  computer  featuring  an  integral  graphical  user  interface  and  mouse.  

Produc3on  of  the  Mac  is  based  on  a  par3al  ver3cal  integra3on  model.  While  Apple  designs  its  own  hardware  and  creates  its  own  opera3ng  system  that  is  pre-­‐installed  on  all  Mac  computers,  Apple  sources  components,  such  as  microprocessors,  RAM  and  LCD  panels  from  other  vendors.[3]  Apple  also  relies  on  contract  manufacturers  like  Foxconn  and  Flextronics  to  build  most  of  its  products.[4]  This  approach  differs  from  most  IBM  PC  compa3bles,  where  mul3ple  sellers  create  and  integrate  hardware  intended  to  run  another  company's  opera3ng  system.  

Apple  also  develops  the  opera3ng  system  for  the  Mac,  currently  OS  X  version  10.10  "Yosemite".  Macs  are  currently  capable  of  running  non-­‐Apple  opera3ng  systems  such  as  Linux,  OpenBSD,  and  Microso=  Windows  with  the  aid  of  Boot  Camp  or  third-­‐party  so=ware.  Apple  does  not  license  OS  X  for  use  on  non-­‐Apple  computers,  though  it  did  license  previous  versions  of  Mac  OS  through  their  Macintosh  clone  program  from  1995  to  1997.  

Page 11: Project Report on iOS App Development

The  MAC  OS  Mac  OS  is  a  series  of  graphical  user  interface-­‐based  opera3ng  systems  developed  by  Apple  Inc.  for  their  Macintosh  line  of  computer  systems.  

The  original  opera3ng  system  was  first  introduced  in  1984  as  being  integral  to  the  original  Macintosh,  and  referred  to  as  the  "System".  

Macintosh  opera3ng  systems  have  been  released  in  two  major  series.  Up  to  major  revision  9,  from  1984  to  2000,  it  is  historically  known  as  Classic  Mac  OS.  Major  revision  10,  from  2001  to  present,  is  branded  OS  X  (originally  referred  to  as  Mac  OS  X).  Major  revisions  to  the  Macintosh  OS  are  now  issued  as  point  revisions,  such  that,  for  example,  10.2  is  substan3ally  different  from  10.5.  Both  series  share  a  general  interface  design,  and  there  has  been  some  overlap  with  shared  applica3on  frameworks  and  virtual  machine  technology  for  compa3bility;  but  the  two  series  also  have  deeply  different  architectures.  

Brief  History  of  MAC  OS  Early  versions  of  Mac  OS  were  compa3ble  only  with  Motorola  68000-­‐family  Macintoshes.  As  Apple  introduced  computers  with  PowerPC  hardware,  the  OS  was  ported  to  support  this  architecture.  Mac  OS  8.1  was  the  last  version  that  could  run  on  a  "68K"  processor  (the  68040).  

OS  X,  which  has  superseded  the  "Classic"  Mac  OS,  is  compa3ble  with  only  PowerPC  processors  from  version  10.0  ("Cheetah")  to  version  10.3  ("Panther").  Both  PowerPC  and  Intel  processors  are  supported  in  version  10.4  ("Tiger",  Intel  only  supported  a=er  an  update)  and  version  10.5  ("Leopard").  10.6  and  later  versions  support  only  Intel  processors.  

Before  the  introduc3on  of  the  later  PowerPC  G3-­‐based  systems,  significant  parts  of  the  system  were  stored  in  physical  ROM  on  the  motherboard.  The  ini3al  purpose  of  this  was  to  avoid  using  up  the  limited  storage  of  floppy  disks  on  system  support,  given  that  the  early  Macs  had  no  hard  disk  (only  one  model  of  Mac  was  ever  actually  bootable  using  the  ROM  alone,  the  1991  Mac  Classic  model).  This  architecture  also  allowed  for  a  completely  graphical  OS  interface  at  the  lowest  level  without  the  need  for  a  text-­‐only  console  or  command-­‐line  mode.  

OS  X  YOSEMITE  (Version  10.10)  

The  latest  version  of  OS  X  is  10.10  "Yosemite",  which  was  released  to  the  public  on  October  16,  2014.  

OS  X  Yosemite  (version  10.10)  is  the  eleventh  major  release  of  OS  X,  Apple  Inc.'s  desktop  and  server  opera3ng  system  for  Macintosh  computers.  Following  the  California  landmark-­‐based  naming  scheme  introduced  with  OS  X  Mavericks,  Yosemite  is  named  a=er  the  na3onal  park.  

Page 12: Project Report on iOS App Development

OS  X  Yosemite  showcased  many  outstanding  features:  

Design  Yosemite  introduced  a  major  overhaul  of  OS  X's  user  interface.  Its  graphics  replaced  skeuomorphism  with  flat  graphic  design  and  blurred  translucency  effects,  following  the  aesthe3c  introduced  with  iOS  7.  Some  icons  have  been  changed  to  correspond  with  those  of  iOS  7  and  iOS  8.  Yosemite  maintains  the  OS  X  desktop  metaphor.  

Con3nuity  Many  of  Yosemite's  new  features  focus  on  the  theme  of  con3nuity,  increasing  its  integra3on  with  other  Apple  services  and  plamorms  such  as  iOS  and  iCloud.  The  Handoff  func3onality  allows  the  opera3ng  system  to  integrate  with  iOS  8  devices  over  Bluetooth  LE  and  Wi-­‐Fi;  users  can  place  and  answer  phone  calls  using  their  iPhone  as  a  conduit,  send  and  receive  text  messages,  ac3vate  personal  hotspots,  or  load  items  being  worked  on  in  a  mobile  app  (such  as  Mail  dra=s  or  Numbers  spreadsheets)  directly  into  their  desktop  equivalent.  

No3fica3on  Center  No3fica3on  Center  features  a  new  "Today"  view,  similar  to  that  in  iOS.  The  Today  view  can  display  informa3on  and  updates  from  various  sources,  along  with  widgets.  The  widgets  in  the  Today  view  are  similar  to  those  of  iOS  8.  

Photos  As  of  OS  X  10.10.3,  Photos  replaces  iPhoto  and  Aperture.  It  uses  iCloud  Photo  Library  to  upload  all  the  user's  photos  across  their  devices.  

Other  Spotlight  is  a  more  prominent  part  of  the  opera3ng  system;  it  now  displays  its  search  box  in  the  center  of  the  screen  and  can  include  results  from  online  sources,  including  Bing,  Maps,  and  Wikipedia.  

Stock  applica3ons  such  as  Safari  and  Mail  have  been  updated.  

In  addi3on,  Apple  added  DuckDuckGo  to  its  search  offerings,  a  non-­‐tracking  search  engine  that  doesn’t  store  users’  data.  

JavaScript  for  Automa3on  (JXA)  is  the  new  system-­‐wide  support  for  scrip3ng  with  JavaScript,  built  upon  JavaScriptCore  and  the  Open  Scrip3ng  Architecture.  It  features  an  Objec3ve-­‐C  bridge  which  enables  en3re  Cocoa  applica3ons  to  be  programmed  in  JavaScript.  

Page 13: Project Report on iOS App Development

The  iPhone  iPhone  is  a  line  of  smartphones  designed  and  marketed  by  Apple  Inc.  They  run  on  Apple’s  iOS  mobile  opera3ng  system.  The  first  genera3on  iPhone  was  released  on  June  29,  2007;  the  most  recent  iPhone  models  are  the  iPhone  6  and  iPhone  6  Plus,  which  were  unveiled  at  a  special  event  on  September  9,  2014.  

iPhone  Development  phase  There  are  eight  genera3ons  of  iPhone  models,  each  accompanied  by  one  of  the  eight  major  releases  of  iOS.  

1st-­‐genera3on  iPhone    The  original  1st-­‐genera3on  iPhone  was  a  GSM  phone  and  established  design  precedents,  such  as  a  bupon  placement  that  has  persisted  throughout  all  releases  and  a  screen  size  maintained  for  the  next  four  itera3ons.  

iPhone  3G  &  3GS    The  iPhone  3G  added  3G  cellular  network  capabili3es  and  A-­‐GPS  loca3on.  The  iPhone  3GS  added  a  faster  processor  and  a  higher-­‐resolu3on  camera  that  could  record  video  at  480p.  

iPhone  4  &  4S      The  iPhone  4  featured  a  higher-­‐resolu3on  960×640  "Re3na  Display",  a  VGA  front-­‐facing  camera  for  video  calling  and  other  apps,  and  a  5-­‐megapixel  rear-­‐facing  camera  with  720p  video  capture.  

The  iPhone  4S  upgrades  to  an  8-­‐megapixel  camera  with  1080p  video  recording,  a  dual-­‐core  A5  processor,  and  a  natural  language  voice  control  system  called  Siri.  

 iPhone  5,  5S  &  5C    iPhone  5  features  the  dual-­‐core  A6  processor,  increases  the  size  of  the  Re3na  display  to  4  inches,  introduces  LTE  support  and  replaces  the  30-­‐pin  connector  with  an  all-­‐digital  Lightning  connector.  

The  iPhone  5S  features  the  dual-­‐core  64-­‐bit  A7  processor,  an  updated  camera  with  a  larger  aperture  and  dual-­‐LED  flash,  and  the  Touch  ID  fingerprint  scanner,  integrated  into  the  home  bupon.  

 The  iPhone  5C  features  the  same  A6  chip  as  the  iPhone  5,  along  with  a  new  backside-­‐illuminated  FaceTime  camera  and  a  new  casing  made  of  polycarbonate.  

 iPhone  6  &  iPhone  6  Plus  The  iPhone  6  and  iPhone  6  Plus  further  increased  screen  size,  measuring  at  4.7  inches  and  5.5  inches,  respec3vely.  In  addi3on,  they  also  feature  a  new  A8  chip  and  M8  mo3on  coprocessor.  

Page 14: Project Report on iOS App Development

iPhone  6  &  6  Plus  Specifica3on  sheet  

Specifica-ons iPhone  6 iPhone  6  Plus

DIMENSIONS 138.1  x  67  x  6.9  mm 158.1  x  77.8  x  7.1  mm

Opera3ng  System iOS  8.3 iOS  8.3

ChipA8  chip  with  64-­‐bit  architecture  

M8  mo3on  coprocessor

A8  chip  with  64-­‐bit  architecture  

M8  mo3on  coprocessor

CPU 1.4  GHz  dual-­‐core  ARMv8-­‐A  Cyclone  2nd  gen.

1.4  GHz  dual-­‐core  ARMv8-­‐A  Cyclone  2nd  gen.

GPU PowerVR  Series  6  GX6450  (quad-­‐core)

PowerVR  Series  6  GX6450  (quad-­‐core)

Memory 1  GB  LPDDR3  RAM 1  GB  LPDDR3  RAM

Storage 16, 64 or 128 GB 16, 64 or 128 GB

Bapery 1810  mAh 2915  mAh

Display 4.7  in  (120  mm)  1334x750  pixel  resolu3on,  326  ppi  pixel  density

5.5  in  (140  mm)  1920x1080  pixel  resolu3on,  401  ppi  pixel  density

Front  Camera 1.2-­‐MP  (1280×960  px  max.),  720p  video  recording  (30  fps)

1.2-­‐MP  (1280×960  px  max.),  720p  video  recording  (30  fps)

Rear  Camera 8-­‐MP  with  1.5  focus  pixels  with  digital  image  stabiliza3on

8-­‐MP  with  1.5  focus  pixels  with  op3cal  image  stabiliza3on

Page 15: Project Report on iOS App Development

iOS  

Introduc3on  iOS  (originally  iPhone  OS)  is  a  mobile  opera3ng  system  created  and  developed  by  Apple  Inc.  and  distributed  exclusively  for  Apple  hardware.  It  is  the  opera3ng  system  that  presently  powers  many  of  the  company's  mobile  devices,  including  the  iPhone,  iPad,  and  iPod  touch.  

iOS  shares  with  OS  X  some  frameworks  such  as  Core  Founda3on  and  Founda3on;  however,  its  UI  toolkit  is  Cocoa  Touch  rather  than  OS  X's  Cocoa,  so  that  it  provides  the  UIKit  framework  rather  than  the  AppKit  framework.  It  is  therefore  not  compa3ble  with  OS  X  for  applica3ons.  Also  while  iOS  also  shares  the  Darwin  founda3on  with  OS  X,  Unix-­‐like  shell  access  is  not  available  for  users  and  restricted  for  apps,  making  iOS  not  fully  Unix-­‐compa3ble  either.  

The  user  interface  of  iOS  is  based  on  the  concept  of  direct  manipula3on,  using  mul3-­‐touch  gestures.  Interface  control  elements  consist  of  sliders,  switches,  and  bupons.  Interac3on  with  the  OS  includes  gestures  such  as  swipe,  tap,  pinch,  and  reverse  pinch,  all  of  which  have  specific  defini3ons  within  the  context  of  the  iOS  opera3ng  system  and  its  mul3-­‐touch  interface.  Internal  accelerometers  are  used  by  some  applica3ons  to  respond  to  shaking  the  device  (of  which  one  common  result  is  the  undo  command)  or  rota3ng  it  in  three  dimensions  (one  common  result  is  switching  from  portrait  to  landscape  mode  or  vice-­‐versa).  

The  current  release,  iOS  8.3,  was  released  on  April  8,  2015.  The  current  version  of  the  opera3ng  system  (iOS  8.0),  dedicates  1.3  -­‐  1.5GB  of  the  device's  flash  memory  for  the  system  par33on,  using  roughly  800  MB  of  that  par33on  which  varies  by  model  for  iOS  itself.  It  runs  on  the  iPhone  4S  and  later,  iPad  2  and  later,  all  models  of  the  iPad  Mini,  and  the  5th-­‐genera3on  iPod  Touch.

Page 16: Project Report on iOS App Development

iOS  Architecture  

 In  iOS,  there  are  four  abstrac3on  layers:    

The  Core  OS  layer  (Mac  OS  Kernel)  • TCP/IP  

• Sockets  

• File  system  

• Power  management  

• Security  

The  Core  Services  layer  • Embedded  SQLite  database  

• Core  Loca3on  

• Networking  

• Core  mo3on  

• Threads  

Page 17: Project Report on iOS App Development

 The  Media  layer    • OpenAL  

• OpenGL  ES  

• Audio  mixing  and  recording  

• Video  playback  

• Image  file  formats  

• Core  anima3on  

• Quartz  

The  Cocoa  Touch  layer  • Mul3-­‐touch  events  and  controls  

• Accelerometer  support  

• Camera  support  

• View  hierarchy  

• Localiza3on  (i18n)  

Page 18: Project Report on iOS App Development

XCode  

Introduc3on  

Xcode  is  an  integrated  development  environment  (IDE)  containing  a  suite  of  so=ware  development  tools  developed  by  Apple  for  developing  so=ware  for  OS  X  and  iOS.  First  released  in  2003,  the  latest  stable  release  is  version  6.3  and  is  available  via  the  Mac  App  Store  free  of  charge  for  OS  X  Yosemite  users.  

The  Mach-­‐O  executable  format  in  Xcode  which  allows  for  “fat  binaries,"  containing  code  for  mul3ple  architectures,  Xcode  can  build  universal  binaries,  which  allow  so=ware  to  run  on  both  PowerPC  and  Intel-­‐based  (x86)  plamorms  and  that  can  include  both  32-­‐bit  and  64-­‐bit  code  for  both  architectures.  Using  the  iOS  SDK,  Xcode  can  also  be  used  to  compile  and  debug  applica3ons  for  iOS  that  run  on  the  ARM  processor.  

The  main  applica3on  of  the  suite  is  the  integrated  development  environment  (IDE).  The  Xcode  suite  also  includes  most  of  Apple's  developer  documenta3on,  and  built-­‐in  Interface  Builder,  an  applica3on  used  to  construct  graphical  user  interfaces.  

Xcode  supports  C,  C++,  Objec3ve-­‐C,  Objec3ve-­‐C++,  Java,  AppleScript,  Python,  Ruby,  Rez,  and  Swi=  source  code  with  a  variety  of  programming  models,  including  but  not  limited  to  Cocoa,  Carbon,  and  Java.  Third  par3es  have  added  support  for  GNU  Pascal,  Free  Pascal,  Ada,  C#,  Perl  and  D.  

Page 19: Project Report on iOS App Development

Gexng  familiar  with  Xcode  environment  

For  developing  any  iOS  applica3on  it  is  very  necessary  to  understand  the  Xcode  environment  and  get  a  good  hand  on  it.  

Why  learn  Xcode?  

According  to  Apple’s  developer  site:  Xcode includes everything you need to create an app. It not only organizes the files that go into creating an app, it provides editors for code and interface elements, allows you to build and run your app, and includes a powerful integrated debugger.

To  start  with,  first  it  is  necessary  to  have  a  knowledge  of  Xcode’s  user  interface:  

�    

 Image  Source:  Apple  developer  site  

Page 20: Project Report on iOS App Development

Developing  An  App  

Get  the  tools  Before  you  start  developing  an  iOS  app  you  will  be  needing  some  set  of  requirements  to  work  in.  

To  develop  iOS  apps,  you  need:  

• A  Mac  computer  running  OS  X  10.9.4  or  later  

• Xcode  

• iOS  SDK  

Review  a  Few  concepts  of  Objec3ve-­‐C  o/r  Swi=  Apple  allows  its  developers  to  code  in  any  of  the  two  available  languages  i.e.  the  formerly  available  Objec3ve-­‐C  or  the  newly  came  up  Swi=.  Your  knowledge  in  any  of  these  languages  will  help  you  build  your  iOS  applica3on.  

Page 21: Project Report on iOS App Development

The Currency Converter App

The  currency  converter  app  we  developed  here  is  a  very  simple  and  well  know  applica3on  which  in  our  case  services  on  a  CUBE  User  Interface.  The  app  facilitates  the  user  to  check  currency  rate  conversions  from  any  currency  of  his  choice  to  any  other  with  an  eye  catching  3-­‐D  UI.  

Design  And  Naviga3on  As  men3oned  above  the  applica3on  features  a  CUBE  UI  for  naviga3on  through  screens.  To  apain  this  we  used  a  special  kind  of  a  Naviga3on  Controller  in  Xcode  known  as  the  “Cube  Controller”  which  facilitates  the  user  to  navigate  by  swiping  away  through  screens  like  turning  the  faces  of  a  cube.  

 

Page 22: Project Report on iOS App Development

   The  applica3on  surfaces  two  screens  for  the  user  to  interact  while  using  it.  User  Interface  -­‐  1  

UI  -­‐  1    features  a  list  of  currencies  from  which  the  user  can  select  in  mul3ple.  

The  selected  currencies  appear  on  UI  -­‐  2  where  the  user  can  see  the  conversion  rate  between  them.  

It  also  features  a  search  bar  on  the  top  for  the  user  to  search  for  any  specific  currency  immediately  from  the  list.  

Page 23: Project Report on iOS App Development

•  For  the  search  bar  we  use  the  UISearch  Bar  class  which  is  a  inbuilt  class  in  Xcode.  

UISearchBar  displays  a  rounded  rectangle  that  can  contain  editable  text.  When  a  user  taps  a  search  bar,  a  keyboard  appears;  when  a  user  taps  Return  in  the  keyboard,  the  keyboard  disappears  and  the  search  bar  can  handle  the  input  in  an  applica-on-­‐specific  way.  By  default,  UISearchBar  displays  the  search  icon.  It  can  also  display  placeholder  text  and  a  clear  text  control  when  user-­‐input  text  is  visible.  

 

• The  list  is  displayed  using  the  Table  View  which  accesses  “UITableView”  class,  which  is  another  inbuilt  class  provided  by  Xcode.  

The UITableView displays a single-column list of multiple rows through which users can scroll. Each row in a table view is a UITableViewCell object.

Page 24: Project Report on iOS App Development

User  Interface  -­‐  2  

The  UI  -­‐  2  showcases  the  main  screen  where  the  user  can  choose  two  currencies  from  two  dynamic  lists  which  displays  the  list  of  user  -­‐  selected  currencies  from  the  previous  screen  and  along  side  there  value  as  compared  to  the  one  in  the  other.  

The  user  can  slide  up  and  down  to  switch  currencies  in  the  list.      

Tapping  on  any  currency  in  the  list  lets  the  user  to  set  a  value  whose  equivalent  in  the  currency  in  the  other  list  is  displayed  spontaneously.  

Page 25: Project Report on iOS App Development

To  facilitate  all  this  func3onality  in  UI  -­‐  2  we  used  3  well  know  elements  present  in  Xcode:  

1.  For  the  two  rota3ng  dynamic  lists  we  used  two  “Picker  Views”.  One  in  the  top  and  the  other  in  the  bopom.  

The  picker  view  uses  “UIPickerView”  class  which  provides  a  poten-ally  mul-dimensional  user-­‐interface  element  consis-ng  of  rows  and  components.  A  component  is  a  wheel,  which  has  a  series  of  items  (rows)  at  indexed  loca-ons  on  the  wheel.  Each  row  on  a  component  has  content,  which  is  either  a  string  or  a  view  object  such  as  a  label  or  an  image.  

Page 26: Project Report on iOS App Development

2.  Then  we  used  three  “Labels”  to  display  the  conversion  taking  “From”  and  “  To”  in  text  for  beper  indica3on.  This  implements  a  class  called  “UILabel”.  The  labels  here  accept  value  dynamically  from  the  selec3on  made  by  the  user  in  the  Picker  View.  

UILabel implements a read-only text view. A label can contain an arbitrary amount of text, but UILabel may shrink, wrap, or truncate the text, depending on the size of the bounding rectangle and properties you set. You can control the font, text color, alignment, highlighting, and shadowing of the text in the label.

3. And lastly the “View” which contains all the other elements on the screen in it. It takes in a class called “UIView”.

UIView provides a structure for drawing and handling events. A UIView object claims a rectangular region of its enclosing superview (its parent in the view hierarchy) and is responsible for all drawing in that region, as well as receiving events that occur in the region.

Page 27: Project Report on iOS App Development

Another important thing to notice is the number pad, which facilitates the user to submit values for conversion.

The number pad slides in to the screen from the bottom automatically when the user single taps on the value section.

Page 28: Project Report on iOS App Development

• The number pad uses a “UIView” which contains all the buttons in it altogether.

• To design the number pad we used “Buttons” from the object library. We studded 12 buttons on board each carrying its own value and functionality such as the delete button at the end.

Page 29: Project Report on iOS App Development

Into the code

The  conversion  ra3o  used  to  convert  currency  values  is  not  defined  in  the  code.  It  is  being  invoked  from  the  data  provided  by  a  website  “themoneyconverter.com”,  whose  data  we  have  parsed  into  our  iOS  applica3on.    

The  line  of  code  which  performs  this  func3on  is  illustrated  below  for  beper  relevance.  

*NOTE:  Data  from  a  external  source  such  as  a  website  can’t  be  just  taken  in  directly  into  an  applica3on.  

To  perform  this  we  use  a  technique  called  “Data  parsing”.  

Defini3on:  Breaking  a  data  block  into  smaller  chunks  by  following  a  set  of  rules,  so  that  it  can  be  more  easily  interpreted,  managed,  or  transmiRed.  

In  simple  terms  we  use  data  parsing  to  convert  a  specific  set  of  data  into  a  format  which  can  can  prove  more  usable  based  on  our  requirements.    

Page 30: Project Report on iOS App Development

Another  important  point  where  we  need  to  mark  is  while  using  the  Table  View  and  wri3ng  code  in  the  background  for  it  using  UITableView  class.  

There  are  two  func3ons  we  need  to  specifically  declare  for  a  table  view  when  we  use  it.  

1. numberOfRowsInSec-on  -­‐  This  is  used  to  set  the  number  of  cells  the  table  view  will  adopt.  

2. cellForRowAtIndexPath  -­‐  This  is  used  to  populate  the  cells  in  the  table  view  with  some  data.  

Page 31: Project Report on iOS App Development

Publishing  Your  App  in  the  Store  

A=er  the  app  is  ready  the  very  next  step  you  would  want  to  do  is  submixng  the  app  on  the  app  store  if  you  want  your  app  to  be  used  by  the  masses.  For  uploading  your  app  on  the  app  store  apple  recommends  a  developer  to  follow  a  certain  set  of  steps  and  procedure.  

1. If  you  use  TestFlight  to  distribute  your  iOS  app  to  testers  (described  in  Beta  Tes3ng  iOS  Apps),  submit  the  last  build  directly  to  App  Review  using  iTunes  Connect,  if  necessary,  validate  the  last  archive  you  distributed  for  tes3ng,  described  in  Running  iTunes  Connect  Valida3on  Tests.  

2. For  Mac  apps,  test  the  Mac  Installer  Package,  as  described  in  Tes3ng  the  Mac  Installer  Package.  

3. Upload  the  archive,  as  described  in  Uploading  Your  App  Using  Xcode.  

4. Use  iTunes  Connect  to  submit  your  app  to  App  Review,  as  described  in  Submixng  the  App.  

The  first  3me  you  upload  your  app  to  iTunes  Connect,  Xcode  creates  the  necessary  distribu3on  cer3ficate  and  store  provisioning  profile  for  you.  

About  Store  Provisioning  Profiles  

A  store  provisioning  profile  is  a  distribu3on  provisioning  profile  that  authorizes  your  app  to  use  certain  app  services  and  ensures  that  you  are  the  one  submixng  your  app.  A  store  provisioning  profile  contains  a  single  App  ID  that  matches  one  or  more  of  your  apps  and  a  distribu3on  cer3ficate.  You  configure  the  App  ID  indirectly  through  Xcode  to  use  certain  app  services.  You  enable  and  configure  app  services  by  sexng  en3tlements  and  performing  other  configura3on  steps.  Some  en3tlements  are  enabled  for  an  App  ID,  and  others  are  set  in  the  Xcode  project.  When  you  submit  your  app  to  the  store,  Xcode  signs  the  app  bundle  with  the  distribu3on  cer3ficate  referenced  in  the  store  provisioning  profile.  

Page 32: Project Report on iOS App Development

�  

Prepare for Uploading Before uploading your app to iTunes Connect, review the human interface and store guidelines, enter information in iTunes Connect, and verify your Xcode project settings.

Review Human Interface and Store Guidelines To streamline the approval process, review the following guidelines and fix any problems and retest your app before continuing.

• Follow the user interface guidelines in iOS Human Interface Guidelines 

• Review the store guidelines in App Store Review Guidelines for iOS Apps

Enter Information in iTunes Connect iTunes Connect is a web tool you use to enter information about your app for sale in the App Store or the Mac App Store. iTunes Connect stores all the metadata about your app including the versions and builds that you upload using Xcode.

Verify Your Xcode Project • Review your Xcode project configuration.

• The bundle ID in the Xcode project, described in Setting the Bundle ID, should match the bundle ID you enter in iTunes Connect.

Page 33: Project Report on iOS App Development

• Use the same App ID to code sign your archive as you used for development and testing.

• If you don’t use any app services that require an explicit App ID, you can use the Xcode wildcard App ID. If you want to create a new App ID, read Registering App IDs. However, if you change your App ID, retest your app using the new App ID before uploading it to iTunes Connect.

• Review the version number and build number settings, described in Setting the Version Number and Build String. iTunes Connect extracts its prerelease version number and build number from the binary.

• To ensure that your app enables the key app services you want to use, review your App ID settings.

Archiving  and  Valida3ng  Your  App  

Archives  allow  you  to  build  your  app  and  store  it,  along  with  cri3cal  debugging  informa3on,  in  a  bundle  that’s  managed  by  Xcode.  Save  an  archive  for  any  version  of  an  app  you  distribute  to  users.  You’ll  use  the  debugging  informa3on  stored  in  the  archive  to  decipher  crash  reports  later.  

Follow  these  steps  to  archive  and  validate  your  app:  

• Review  the  Archive  scheme  sexngs.  

• Create  an  archive  of  your  app.  

• Validate  the  archive.  

• If  necessary,  test  your  archive  before  uploading  it.  

Page 34: Project Report on iOS App Development

Reviewing the Archive Scheme Settings

1. In the Xcode project editor, choose Product > Scheme > Edit Scheme to open the scheme editor.

2. Click Archive in the column on the left.

3. Choose Release from the Build Configuration pop-up menu, and click Close.

Running iTunes Connect Validation Tests Immediately after creating the archive, upload your archive to iTunes Connect and run validation tests.

To validate an archive

1. In the Archives organizer, select the archive.

2. Click the Validate button.

Page 35: Project Report on iOS App Development

3. For Mac apps, select “Validate for the Mac App Store” as the validation method and click Next.

4. In the dialog that appears, choose a team from the pop-up menu and click Choose.

If necessary, Xcode creates a distribution certificate and distribution provisioning profile for you. The name of the distribution provisioning profile begins with the text XC:.

5. In the dialog that appears, review the app, its entitlements, and provisioning profile, and click Validate.

Xcode uploads the archive to iTunes Connect and iTunes Connect runs validation tests. If a dialog appears stating that no application record can be found, click Done, create an app record in iTunes Connect, and repeat these steps.

6. Review validation issues that are found, if any, and click Done.

Fix any validation issues you find, create a new archive, and repeat these steps until there are no further issues. Note: You can’t proceed until the archive passes all the validation tests.

Page 36: Project Report on iOS App Development

Uploading Your App Using Xcode

Upload your code signed and provisioned app to iTunes Connect. This important step ensures that the upload comes directly from you and that only you grant permission for your app to use certain app services. Code signing your app or installer package prevents an attacker from uploading a modified version of your app—only someone with the private key for your distribution certificate can upload your app to iTunes Connect.

To upload an app to iTunes Connect

1. In the Archives organizer, select the archive and click the “Submit to the App Store” button.

2. In the dialog that appears, choose a team from the pop-up menu and click Choose.

If necessary, Xcode creates a distribution certificate and distribution provisioning profile for you. The name of the distribution provisioning profile begins with the text XC:.

3. In the dialog that appears, review the app, its entitlements, and provisioning profile, and click Submit.

Page 37: Project Report on iOS App Development

Xcode uploads the archive to iTunes Connect and iTunes Connect runs validation tests. If a dialog appears stating that no application record can be found, click Done, create an app record in iTunes Connect, and repeat these steps.

4. If issues are found, click Done and fix them before continuing.

5. If no issues are found, click Submit to upload your app.

Xcode transmits the archive to Apple, where the binary is examined to determine whether it conforms to Apple guidelines. If the binary is rejected, correct the problems that were identified and upload a new binary. If you successfully upload your app, view the version and build of your app in iTunes Connect, as described in Viewing Binary Details. Later, use iTunes Connect to submit your app to App Review, as described in Submitting the App. If you prefer to upload your binary using Application Loader, read Using Application Loader for how to use Application Loader for this step.

Page 38: Project Report on iOS App Development

Issues and Problems

I faced a number of problem during the course of my internship. Various problems

I faced are:

i. The concept of application development is not yet covered in my academic

syllabus and it was completely new chapter to me so I faced a little problem

initially to get a hang of the topic and get in flow with it.

ii. Due to the security provisions in Stefanini I did not get chance to work in a

real project. Though my mentor demonstrated me everything in real time

and the company made the best resources available to me for my proper

training.

iii. The internship period was limited due to which I did not get chance to to

learn more and gain more experience as I have learnt there’s a lot more in

the field to discover.

Page 39: Project Report on iOS App Development

Core Theoretical Concept Vs Practical Experience

When it comes to knowledge there are different kinds of knowledge and different

ways of acquiring each kind. One is the theory and the other phase is the practical

implementation of theory. Both the types of knowledge are important and both

makes us better at whatever we do. It helps us understand the concept that why one

technique works where another fails to sustain. So it is important to implement our

theoretical knowledge into practical professional life which makes us stronger in

our career.

Practical knowledge helps us to acquire the specific techniques that become the

tools of our objective. It sits much closer to our actual day-to-day work. There are

some things we can only learn through doing and experiencing. Practical

knowledge can often lead to a deeper understanding of a concept through the act of

doing and personal experience. Both of the above are important, we won’t survive

in any career unless we can bring results and to do that we need practical

knowledge.

Many theoretical knowledge which I studied in my university course got

implemented or perceived and proved helpful in my training course. One good

example of this can be the knowledge in object oriented programming languages

which in this case was Objective-C.

Page 40: Project Report on iOS App Development

Conclusion

Stefanini being a prestigious organisation provided a chance to fresher like

me who is still under learning process to enhance the abilities by giving a

chance of internship in their renowned organisation. I came up with the

understanding of the actual working of the organisation as the staff was

highly co-operative and guided me at every step.

It was a great experience overall, both working and learning. I am sure the

time I spent here gaining experience in my subject is going to help me a lot in

my studies and career ahead.

Apart from the technical knowledge I acquired, this training gave me an

experience of what it’s like to work in an actual office environment and what

all the difficulties we come across in our professional day to day life.

Page 41: Project Report on iOS App Development

References www. stefanini.com/en (Stefanini official website)

www.wikipedia.org (For definitions and other general

information on various topics)

Mr. Ajay Kumar Kota (iOS Team Lead, Mentor)