Free online ebook: iOS 8 App Development Essentials

The index:

  1. Start Here
  2. Joining the Apple iOS 8 Developer Program
  3. Installing Xcode 6 and the iOS 8 SDK
  4. A Guided Tour of Xcode 6
  5. Testing Apps on iOS 8 Devices with Xcode 6
  6. An Introduction to Swift Playgrounds
  7. Swift Data Types, Constants and Variables
  8. Swift Operators and Expressions
  9. Swift Flow Control
  10. The Swift Switch Statement
  11. An Overview of Swift Functions and Closures
  12. The Basics of Object Oriented Programming in Swift
  13. An Introduction to Swift Inheritance
  14. Working with Array and Dictionary Collections in Swift
  15. The iOS 8 Application and Development Architecture
  16. Creating an Interactive iOS 8 App
  17. Understanding iOS 8 Views, Windows and the View Hierarchy
  18. An Introduction to Auto Layout in iOS 8
  19. Working with iOS 8 Auto Layout Constraints in Interface Builder
  20. An iOS 8 Auto Layout Example
  21. Implementing iOS 8 Auto Layout Constraints in Swift Code
  22. Implementing Cross-Hierarchy Auto Layout Constraints in iOS 8
  23. Understanding the iOS 8 Auto Layout Visual Format Language in Swift
  24. Using Size Classes to Design Universal iOS User Interfaces
  25. Using Storyboards in Xcode 6
  26. Using Xcode 6 Storyboards to Create an iOS 8 Tab Bar Application
  27. An Overview of iOS 8 Table Views and Xcode 6 Storyboards
  28. Using Storyboards and Swift to Build Dynamic TableViews with Prototype Table View Cells
  29. Implementing iOS 8 TableView Navigation using Storyboards in Xcode 6 and Swift
  30. An iOS 8 Swift Split View Master-Detail Example
  31. Implementing a Swift Page based iOS 8 Application using UIPageViewController
  32. An Example Swift iOS 8 UIPageViewController Application
  33. Working with Directories in Swift on iOS 8
  34. Working with Files in Swift on iOS 8
  35. iOS 8 Directory Handling and File I/O in Swift – A Worked Example
  36. Preparing an iOS 8 App to use iCloud Storage
  37. Managing Files using the iOS 8 UIDocument Class
  38. Using iCloud Storage in an iOS 8 Application
  39. Synchronizing iOS 8 Key-Value Data using iCloud
  40. iOS 8 Data Persistence using Archiving and Swift
  41. Swift iOS 8 Database Implementation using SQLite
  42. An Example SQLite based iOS 8 Application using Swift and FMDB
  43. iOS 8 Databases in Swift using Core Data
  44. An iOS 8 Swift Core Data Tutorial
  45. An Introduction to CloudKit Data Storage on iOS 8
  46. An iOS 8 CloudKit Example
  47. An iOS 8 CloudKit Subscription Example
  48. An Overview of iOS 8 Multitouch, Taps and Gestures
  49. An Example Swift iOS 8 Touch, Multitouch and Tap Application
  50. Detecting iOS 8 Touch Screen Gesture Motions in Swift
  51. Identifying Gestures using iOS 8 Gesture Recognizers
  52. An iOS 8 Swift Gesture Recognition Tutorial
  53. Implementing TouchID Authentication in iOS 8 Apps
  54. An Overview of iOS 8 Collection View and Flow Layout
  55. A Swift iOS 8 Storyboard-based Collection View Tutorial
  56. Subclassing and Extending the iOS 8 Collection View Flow Layout in Swift
  57. Drawing iOS 8 2D Graphics in Swift with Core Graphics
  58. Interface Builder Live Views and iOS 8 Embedded Frameworks
  59. An iOS 8 Swift Graphics Tutorial using Core Graphics and Core Image
  60. Basic iOS 8 Swift Animation using Core Animation
  61. iOS 8 UIKit Dynamics – An Overview
  62. A Swift iOS 8 UIKit Dynamics Tutorial
  63. An Introduction to iOS 8 Sprite Kit Game Programming
  64. An iOS 8 Swift Sprite Kit Level Editor Game Tutorial
  65. A Swift iOS 8 Sprite Kit Collision Handling Tutorial
  66. An iOS 8 Sprite Kit Particle Emitter Tutorial
  67. Integrating iAds into an iOS 8 App using Swift
  68. Integrating Maps into iOS 8 Applications using MKMapItem and Swift
  69. An Example Swift iOS 8 MKMapItem Application
  70. Getting Location Information using the iOS 8 Core Location Framework in Swift
  71. A Swift Example iOS 8 Location Application
  72. Working with Maps on iOS 8 with Swift, MapKit and the MKMapView Class
  73. Working with MapKit Local Search in iOS 8 and Swift
  74. Using MKDirections to get iOS 8 Map Directions and Routes
  75. An Introduction to Extensions in iOS 8
  76. An iOS 8 Today Extension Widget Tutorial
  77. Creating an iOS 8 Photo Editing Extension
  78. Creating an iOS 8 Action Extension
  79. Receiving Data from an iOS 8 Action Extension
  80. Using iOS 8 Event Kit and Swift to Create Date and Location Based Reminders
  81. Accessing the iOS 8 Camera and Photo Library in Swift
  82. An Example Swift iOS 8 iPhone Camera Application
  83. iOS 8 Video Playback using AVPlayer and AVPlayerViewController
  84. Playing Audio on iOS 8 using AVAudioPlayer
  85. Recording Audio on iOS 8 with AVAudioRecorder in Swift
  86. Integrating Twitter and Facebook into iOS 8 Applications using Swift
  87. An iOS 8 Swift Facebook Integration Tutorial using UIActivityViewController
  88. iOS 8 Facebook and Twitter Integration using SLRequest and Swift
  89. An Swift iOS 8 Twitter Integration Tutorial using SLRequest
  90. Making Store Purchases in Swift with the SKStoreProductViewController Class
  91. Building In-App Purchasing into iOS 8 Swift Applications
  92. Preparing an iOS 8 Application for In-App Purchases
  93. An iOS 8 Swift In-App Purchase Tutorial
  94. Configuring and Creating App Store Hosted Content for iOS 8 In-App Purchases

 

http://www.techotopia.com/index.php/IOS_8_App_Development_Essentials

 

Android: detecting the current caller

@Override
public void onReceive(Context context, Intent intent) {

    TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    PhoneCallStateListener customPhoneListener = new PhoneCallStateListener(context);
    telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
    helper = new ContactDatabaseHelper(context);
    list = helper.getAllContacts();

    try{
        incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

        if (list.size() != 0){
            for ( int i  = 0, size = list.size(); i < size; i++ ){
                if (PhoneNumberUtils.compare(incomingNumber, list.get(i).getContactNumber())){                  
                    ToastMsg.showToast(context,list.get(i).getContactName()+" Calling");
                }
            }
        }


    }catch (Exception e) {
        // TODO: handle exception
    }   

}


public class PhoneCallStateListener extends PhoneStateListener{
private Context context;

public PhoneCallStateListener(Context context){
    this.context = context;
}

@Override
public void onCallStateChanged(int state, String incomingNumber) {  

    switch (state) {

        case TelephonyManager.CALL_STATE_RINGING:       


            break;
        case PhoneStateListener.LISTEN_CALL_STATE:

    }
    super.onCallStateChanged(state, incomingNumber);
}
}

Credit Naser Shaikh