Mac Application Development by Example: Beginner's Guide


Mac Application Development by Example: Beginner's Guide
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
$22.94
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
$44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Start developing applications for Mac OS X
  • Learn how to take advantage of Mac features such as the iSight camera and the multi-touch trackpad
  • Use Xcode to its full potential to make tasks simpler

Book Details

Language : English
Paperback : 318 pages [ 235mm x 191mm ]
Release Date : December 2012
ISBN : 184969382X
ISBN 13 : 9781849693820
Author(s) : Robert Wiebe
Topics and Technologies : All Books, Application Development, Beginner's Guides

Table of Contents

Preface
Chapter 1: Our First Program – SimpleCalc
Chapter 2: Debugger – Finding and Fixing Problems
Chapter 3: System Preferences – NewDefaults
Chapter 4: Business Application – Global Currency Converter
Chapter 5: Personal Information – Numbers in the iCloud
Chapter 6: Painting – Multi-finger Paint
Chapter 7: Capturing Still Images – iSight iMage cApture App
Chapter 8: Video Recording – iSight Recorder
Chapter 9: Video Recording – Full Screen iSight Recorder
Chapter 10: Sharing Our App with Others – Becoming a Mac Developer
Index
  • Chapter 1: Our First Program – SimpleCalc
    • Locating developer tools
    • Time for action - Installing the Xcode App
    • Working with projects
    • Time for action - creating the SimpleCalc Xcode project
    • Understanding the Xcode project template
    • Time for action – examine the items in the project navigator
    • Configuring an Xcode project
    • Time for action - configuring the SimpleCalc Xcode project
    • Running an App
    • Time for action – run the SimpleCalc App
    • Customizing an Xcode template's interface
    • Time for action – creating the SimpleCalc interface
    • Customizing an Xcode template's implementation
    • Time for action – implement the SimpleCalc behavior
    • Building an App
    • Time for action – building and installing the SimpleCalc App
    • Summary
    • Chapter 2: Debugger – Finding and Fixing Problems
      • The Debug area in Xcode
      • Time for action – displaying the Debug area in Xcode
      • The Debug area appears on its own
      • Time for action - integer division by zero
      • Examining variable values in the debugger
      • Time for action – examining a variable value
      • Unexpected App behavior – no debugger?
      • Time for action – index out of range
      • Using breakpoints to get more information from Xcode
      • Time for action – set a breakpoint
      • Summary
      • Chapter 3: System Preferences – NewDefaults
        • Understanding preference panes
        • The transition to 64 bit from 32 bit
        • Creating an Xcode preference pane project
        • Time for action – creating the NewDefaults Xcode project
        • Configuring an Xcode preference pane project
        • Time for action – customizing the icon and copyright
        • Customizing the preference pane template interface
        • Time for action – creating the NewDefaults interface
        • Customizing the preference pane Xcode template's .h implementation
        • Time for action – completing the NewDefaults.h interface definition
        • Customizing the preference pane Xcode template's .m implementation
        • Time for action – completing the NewDefaults.m implementation
          • Implementing the readDefaults:forKey: method
        • Time for action – writing the readDefaults:forKey: program code
          • Implementing the didSelect: method
        • Time for action – writing the didSelect: program code
          • Implementing themyButtonAction: method
        • Time for action – writing the myButtonAction: program code
        • Summary
        • Chapter 4: Business Application – Global Currency Converter
          • Designing the GUI for global currency converter
          • Time for action – creating our project and GUI
          • Connecting the GUI to program elements
          • Time for action – connecting the App Delegate to the GUI
          • What is an XML file?
          • Format of the XML file we will download
          • Time for action – downloading an XML file
          • Parsing an XML document
          • Time for action – parsing the XML Document
          • How to invoke a background thread
          • Time for action – invoking a background thread
          • Managing a pop-up menu
          • Time for action – implementing the program code for the pop-up menu
          • Creating the Table View Interface
          • Time for action – configuring the table view in Interface Builder
          • Creating the table view implementation
          • Time for action – implementing the dataSource and delegate
          • Summary
          • Chapter 5: Personal Information – Numbers in the iCloud
            • What is iCloud?
            • Installing an iCloud enabled development profile
            • Time for action – creating and installing an iCloud enabled development profile
            • Designing the GUI for numbers in the cloud
            • Time for action – creating our project and GUI
            • Connecting the GUI to program elements
            • Time for action – connecting the App Delegate to the GUI
            • Using two tables in one window
            • Time for action – implementing the TableView delegate
            • Implementing the toolbar
            • Time for action – implementing the Toolbar delegate
            • Accessing iCloud
            • Time for action – accessing iCloud for key-value storage
            • Summary
            • Chapter 6: Painting – Multi-finger Paint
              • What is multi-touch?
              • Implementing a custom view
              • Time for action – creating a GUI with a custom view
              • How to receive multi-touch events
              • Time for action – drawing our fingers
              • How to manage the mouse cursor
              • Time for action – detaching the mouse cursor from the mouse hardware
              • Performing 2D drawing in a custom view
              • Time for action – drawing the active strokes
              • Saving strokes
              • Time for action – saving the strokes
              • How to receive gesture events
              • Time for action – handling rotate gestures
              • Summary
              • Chapter 7: Capturing Still Images – iSight iMage cApture App
                • What is Image Kit?
                • Adding framework to a project
                • Time for action – creating a project and adding the Quartz framework
                • Browsing images
                • Time for action – implementing the interface for browsing our pictures folder
                • Time for action – implementing the methods for browsing our Pictures folder
                • Capturing and saving images
                • Time for action – capturing and saving images
                • Modifying the behavior of the Picture Taker
                • Time for action – drawing our fingers
                • Deleting images
                • Time for action – deleting an image
                • Summary
                • Chapter 8: Video Recording – iSight Recorder
                  • What is Quicktime Kit Capture?
                  • Previewing the video capture
                  • Time for action – creating a project and adding the program code to preview video and audio
                  • Capturing a single frame as a still image
                  • Time for action – capturing a frame
                  • Previewing audio capture
                  • Time for action – capturing and saving images
                  • Capturing a movie to disk
                  • Time for action – capturing a Quicktime movie
                  • Capturing compressed movies to disk
                  • Time for action – saving a compressed movie
                  • Summary
                  • Chapter 9: Video Recording – Full Screen iSight Recorder
                    • What is the full screen mode?
                    • Enabling the full screen mode
                    • Time for action – enabling full screen mode in iSight Recorder
                    • Disabling auto layout
                    • Time for action – using the traditional layout model
                    • Modifying our user interface to take advantage of full screen
                    • Time for action – refining how we enter and exit full screen
                    • Time for action – refining text colors
                    • Time for action – refining controls using fading
                    • Customizing the full screen window size
                    • Time for action – adding a full screen window that has depth
                    • Customizing the full screen animation
                    • Time for action – customizing the full screen animation
                    • Summary
                    • Chapter 10: Sharing Our App with Others – Becoming a Mac Developer
                      • What is the Mac developer program?
                      • What are the benefits of joining the Mac developer program?
                        • Access to Development Videos, including World Wide Developer Conferences sessions
                        • Access to the Mac OS X Developer Library
                        • Access to the Apple bug reporter system
                        • Access to pre-release (beta) software
                      • The opportunity to join a paid developer program
                        • Access to developer forums
                        • Code level technical support
                        • Access to iCloud services
                        • A developer ID for gatekeeper
                        • The ability to distribute our App through the Mac App store
                    • Step by step developer program sign up
                    • Time for action – joining the Mac developer program
                    • More developer tools
                    • Time for action – accessing the online developer tools
                    • What is code signing?
                    • What is Gatekeeper?
                    • Signing an App with a Developer ID
                    • Time for action – signing an App with our Developer ID
                    • Summary

                      Robert Wiebe

                      Robert Wiebe was born in 1961. He has more than 30 years experience designing, implementing, and testing software. He wrote his first App in 1979, as a high school student, using 6502 assembler code on an Ohio Scientific C2-4P computer with 8k RAM. More recently, he has focused on developing games and utilities for Mac OS X. His interests include a vintage computer collection which includes many pre-IBM PC era microcomputers; Apple Macintosh computers starting with the SE/30 running Mac OS 7 through to the Macbook Pro running Mac OS X that he uses today. He has developed many popular Mac OS X Apps including ShredIt X, NetShred X, Music Man, iVCD, and many more. He has experience developing software in a number of industries, including mining, finance, and communications. He has worked for a number of employers including Motorola as a Senior Systems Architect developing two-way wireless data systems and Infowave Software as the Software Development Manager for their Imaging Division. After working for other people's companies, he founded his own companies, Mireth Technology and Burningthumb Software, which are his primary interests today. He is also the author of Unity iOS Essential book (ISBN 978-1-849691-82-6).
                      Sorry, we don't have any reviews for this title yet.

                      Code Downloads

                      Download the code and support files for this book.


                      Submit Errata

                      Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


                      Errata

                      - 2 submitted: last submission 17 Apr 2014

                      Page number: 138

                      7. Connect the dataSource and delegate outlets of both the table views to the new BTS_NCToolbarDelegate object.
                      Note to connect the table views to the toolbar delegate.

                      Errata type: Code | Page number: 141

                      [m_appDelegate.m_keyTableViewreloadData]; should be [m_appDelegate.m_keyTableView reloadData];

                      Errata type: Code | Page number: 141

                      In bullet point 14, [m_appDelegate.m_categoryViewreloadData]; and [m_appDelegate.m_keyTableViewreloadData]; should be [m_appDelegate.m_categoryView reloadData]; and [m_appDelegate.m_keyTableView reloadData];

                      Errata type: Code | Page number: 142

                      In bullet point 15, [m_appDelegate.m_keyTableViewreloadData]; should be [m_appDelegate.m_keyTableView reloadData];

                      Errata type: Code | Page number: 143

                      At this point, if you cut and paste all the sections of code into Xcode, and fix the minor errors, the code does not allow you to add/edit/delete any of the array items. The reason is that the "m_numbersArray" has not been alloc'ed and init'ed. The actual alloc/init is done in the next section. You need to add the following into:

                              - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
                              {
                                  if (m_numbersArray == NULL)
                                         {
                                              m_numbersArray = [[NSMutableArray alloc] init];
                                         }
                                     }

                      Errata type: Code | Page number: 217

                      In the Time for action – deleting an image section, first numbered bullet:

                       

                      Instead of

                      1.  In the BTSWindowController+Importer.m file, in the setupBrowsermethod,..

                       

                      it should be

                      1.  In the BTSWindowController+Browser.m file, in the setupBrowsermethod,..

                       

                      Sample chapters

                      You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                      Frequently bought together

                      Mac Application Development by Example: Beginner's Guide +    JIRA 4 Essentials =
                      50% Off
                      the second eBook
                      Price for both: $44.10

                      Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                      What you will learn from this book

                      • The basic concepts and tools and how to use them to create an OS X application
                      • Access information from the Internet from within a business app to enhance its functionality
                      • Store and retrieve information from Apple’s iCloud server farm
                      • Use the debugger to find and fix problems that cause an app to crash
                      • Create a new System Preference that can change the fundamental way the Mac OS system behaves
                      • Capture video from the iSight camera and save it as a Quicktime movie file
                      • Implement a custom view and draw directly into it using the 2D drawing interfaces
                      • Share your app with others in a Gatekeeper-aware and friendly manner

                      In Detail

                      It's never been more important to have the ability to develop an App for Mac OS X. Whether it’s a System Preference, a business app that accesses  information in the Cloud, or an application that uses multi-touch or uses a camera, you will have a solid foundation in app development to get the job done.

                      Mac Application Development by Example takes you through all the aspects of using the Xcode development tool to produce complete working apps that cover a broad range of topics. This comprehensive book on developing applications covers everything a beginner needs to know and demonstrates the concepts using examples that take advantage of some of the most interesting hardware and software features available.

                      You will discover the fundamental aspects of OS X development while investigating innovative platform features to create a final product which take advantage of the unique aspects of OS X.

                      Learn how to use Xcode tools to create and share Mac OS X apps. Explore numerous OS X features including iCloud, multi-touch trackpad, and the iSight camera.

                      This book provides you with an illustrated and annotated guide to bring your idea to life using fundamental concepts that work on Mac.

                      Approach

                      This book is a beginners guide that teaches the topic using a learn by example method.

                      Who this book is for

                      This book is for people who are programming beginners and have a great idea for a Mac OS X app and need to get started.

                      Code Download and Errata
                      Packt Anytime, Anywhere
                      Register Books
                      Print Upgrades
                      eBook Downloads
                      Video Support
                      Contact Us
                      Awards Voting Nominations Previous Winners
                      Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                      Resources
                      Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software