SlideShare a Scribd company logo
06.12.2016
Recep Düzdemir | Software Infrastructure
Gizem Akman | Software Infrastructure
Push Notification
Push Notification
 Push notification is the delivery of information
from a software application to a computing
device without a specific request from
the client.
 Message may contain notification, data or
both.
Push Notification Lifecycle
Register
Store Registration Token
Send Message
Message Parameters
Message Parameters (Cont’d)
Message Payload
Notification Parameters
Firebase Cloud Messaging
• HTTP API
• XMPP API
FCM HTTP API
• @ https://gcm-http.googleapis.com/gcm/send
• syncronous
• supports multiple recipients and topics
• no delivery receipt
• unidirectional
FCM HTTP Response Codes
FCM HTTP Errors
FCM HTTP Errors (Cont’d)
FCM HTTP Errors (Cont’d)
FCM XMPP API
• @ fcm-xmpp.googleapis.com:5235
• asyncronous
• supports single recipient only
• bidirectional
• returns delivery receipt
FCM XMPP Errors
FCM XMPP Errors (Cont’d)
FCM XMPP Errors (Cont’d)
Apple Push Notification Service (APNs)
• Legacy API ( TCP)
• HTTP/2 API
APNs Binary API
• @gateway.push.apple.com:2195
• supports up to 2KB payload
• separate feedback service @ feedback.push.apple.com:2196
• returns no response in case of success
• returns an error response in case of failure and immediately
closes the connection
APNs Binary API Response Format
APNs HTTP/2 API
• @api.push.apple.com:443
• supports up to 4KB payload
APNs HTTP/2 Response Format
APNs HTTP/2 Error Reasons
APNs HTTP/2 Error Reasons (Cont’d)
iOS vs Android
Q&A
IOS 10 RICH NOTIFICATIONS
 In iOS 10 notifications are becoming a key part
of Apple's mobile operating system, and one
of the primary way that users interact with
apps.
IOS 10 RICH NOTIFICATIONS
 As part of the new UserNotifications framework, Apple has
given us the ability to make notifications that contain
images, sound, video, or even custom content generated on
the device.
 Much of this capability comes via three new features
showcased at Worldwide Developers Conference(WWDC):
media attachments, notification service extensions, and
notification content extensions.
 Including media in your push notification can increase the
open rate.
What’s new in iOS 10
Notifications?
 Notifications can now contain images and gifs
What’s new in iOS 10
Notifications?
 It is now possible to add images and gifs to
notifications.
 These images or gifs can be loaded either from
the resources of your app, or from a remote URL.
 iOS will first download the image or gif and then
display the notification.
What’s new in iOS 10
Notifications?
 Notifications can contain
videos
 Notifications can contain
videos up to 50 megabytes
in size.
What’s new in iOS 10
Notifications?
 Notifications can be
interactive
 Notifications can now contain buttons.
Users can use action buttons to interact
with notifications.
 As with earlier versions of iOS, buttons
can also be used to open your app and
take specific actions. But unlike earlier
versions, actions buttons are much more
easily seen since they don't require a left-
swipe on the notification.
Why Media Attachments Are
Awesome
 Media attachments open up new opportunities for
user engagement with our apps.
 Before, we were limited to just a couple lines of text;
we had to rely on the user opening the app to do
anything more.
 This is a win-win for app makers and users. App makers
get to deliver more compelling content in their
notifications, and users get more choice in their level of
notification interaction.
How They Work
 Media attachments work slightly different between
local notifications and remote notifications.
 In the case of a local notification, its media attachment
must contain the URL of a file on disk at the time that
an app creates the notification.
 The file is copied when the notification is scheduled,
and that file is delivered along with the notification. No
extra effort is required.
How They Work
 For a remote notification, a remote notification service delivers
information about the media attachment as part of the APNS
notification payload.
 This includes the attachment URL, which, importantly, does not
have to be the URL of a file already on the device.
 However, iOS 10 will not automatically deliver an attachment with a
notification if that attachment is not stored locally.
 Apple’s solution to this problem is something called the
Notification Service Extension.
Notification Service Extension
 Before IOS 10
Notification Service Extension
 IOS 10
Notification Service Extension
 Service extension lets you customize the
content of a remote notification before it is
delivered to the user.
 You could use the extension to decrypt an
encrypted data block or to download images
associated with the notification.
Notification Service Extension
 At 4KB in size, a remote notification’s payload is too
small to deliver a media attachment file itself.
 Instead, we define an attachment URL in the remote
notification payload.
 Once a device receives the remote notification payload
for our app, the app’s service extension gets the
chance to download the file at the URL and attach it to
the notification before the device displays the
notification to the user.
Notification Service Extension
 How to add service extension to your
application?
Notification Service Extension
 Add a new target to your project
Notification Service Extension
When you created the Service Extension, Xcode created the NotificationService.swift file
and an Info.plist file.
Notification Service Extension
 We use the first function to download the content from the
URL and add it to the notification. We should also handle
network errors here.
 We use the second function to handle the case where the
first function runs out of time (as determined by iOS).
Notification Service Extension
How does iOS know which
notifications to intercept?
Notification Service Extension
 Notification Payload
 The mutable-content fields tells iOS that the notification has
content that can be changed by a service extension before delivery
 What if we don’t just want to serve up simple
media files?
 What if we want to generate custom content?
Notification Content Extension
 Notification Content Extension let you provide
custom UI for your notifications.
 A Notification Content Extension gives us a
chance to process a notification and supply
new content to the notification before it is
displayed to the user.
Notification Content Extension
Most important things:
 Custom views
 Support for remote and local notifications
 No interaction with views (possible only with
notification actions)
 Respond to notification actions
Notification Content Extension
 How to add content extension to your
application?
Notification Content Extension
 Add a new target to your project
Notification Content Extension
MainInterface.storyboard : we will desing our notification UI in this.
NotificationViewController.swift : a UIViewController subclass that will
enable us to update our custom interface.
When you created the Content Extension, Xcode created
the NotificationViewController.swift file, a MainInterface.storyboard file and
an Info.plist file.
Notification Content Extension
 How does the notification content extension
work?
Notification Content Extension
 Set an identifier for UNNotificationExtensionCategory key in
extension's Info.plist:
Notification Content Extension
 Remote Notifications
 Local Notifications
{
aps: {
category: ‘myNotificationCategory'
}
}
Notification Content Extension
Notification Content Extension
 We may also implement optional functions
that handle action button presses or display
media playback controls.
 How to add a custom action?
Notification Actions
 You can add up to four actions and each
action is encompassed in a ‘category’.
 Demo
Android N Notifications
 Notifications are become an important part of
every Android application and it is an
intelligent way to re-engage users with the
installed apps.
 Effectively used notifications will help
application to get returning users.
Android N Notifications
 To provide a better user experience,
notifications on Android N have received a
visual refresh, improved support for custom
views, and expanded functionality in the
forms of Direct Reply, a new MessagingStyle,
and bundled notifications.
Android N Notifications
 The first and most obvious change is that the default look
and feel of notifications has significantly changed.
 Many of the fields that were spread around the
notifications have been collapsed into a new header row
with your app’s icon and name anchoring the notification.
 This change ensured that the title, text, and large icon are
given the most amount of space possible and, as a result,
notifications are generally slightly larger now and easier to
read.
Android N Notifications
Android N Notifications
 Notification actions have also received a
redesign and are now in a visually separate
bar below the notification.
Direct Reply
 While notification actions have already been
able to launch an Activity or do background
work with a Service or BroadcastReceiver,
Direct Reply allows you to build an action that
directly receives text input inline with the
notification actions.
Direct Reply
Android N Notifications
 If you’re building a messaging app and expect
back and forth conversations, you should use
MessagingStyle and append the additional
message to it.
Messaging Style
Messaging Style
Bundled Notifications
 Bundled
notifications
that appear
grouped
when a
group ID has
been set for
each
notification.
Bundled Notifications
 We can also
display
actions for
notifications
that are
bundled.
Custom View Notifications
 We can now
use custom
views for
notifications
These can
be for both
collapsed
and
expanded
notification
layouts.
 Demo
Q&A

More Related Content

What's hot

Mobile App Marketing: The Ultimate Guide to Success
Mobile App Marketing: The Ultimate Guide to SuccessMobile App Marketing: The Ultimate Guide to Success
Mobile App Marketing: The Ultimate Guide to Success
Pappas Group a DMI Company
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
Saikrishna Tanguturu
 
Firebase PPT
Firebase PPTFirebase PPT
Firebase PPT
JATIN GUPTA
 
Firebase
FirebaseFirebase
Firebase - Dynamic Links
Firebase - Dynamic LinksFirebase - Dynamic Links
Firebase - Dynamic Links
Filipe Nunes
 
PPT on iOS
PPT on iOS PPT on iOS
PPT on iOS
Ravi Ranjan
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
Manikantan Krishnamurthy
 
Introduction to Firebase
Introduction to FirebaseIntroduction to Firebase
Introduction to Firebase
Mustafa Şenel
 
Firebase
Firebase Firebase
Introducing firebase
Introducing firebaseIntroducing firebase
Introducing firebase
Farouk Touzi
 
iOS Introduction For Very Beginners
iOS Introduction For Very BeginnersiOS Introduction For Very Beginners
iOS Introduction For Very Beginners
Saravanan Vijayakumar
 
Android Basic Concept
Android Basic Concept Android Basic Concept
Android Basic Concept
University of Potsdam
 
Android vs ios presentation detailed slides
Android vs ios presentation detailed slidesAndroid vs ios presentation detailed slides
Android vs ios presentation detailed slides
Muhammad Arslan Khan
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Christos Matskas
 
Firebase Overview
Firebase OverviewFirebase Overview
Firebase Overview
aashutosh kumar
 
Mobile app promotion strategy
Mobile app promotion strategyMobile app promotion strategy
Mobile app promotion strategy
GetAProgrammer
 
Advertising On Instagram
Advertising On InstagramAdvertising On Instagram
Advertising On Instagram
mKonnekt
 
Instagram Ads - Advertising on Instagram
Instagram Ads - Advertising on InstagramInstagram Ads - Advertising on Instagram
Instagram Ads - Advertising on Instagram
Dhiaksa Adiwyakto
 
Introduction to ios
Introduction to iosIntroduction to ios
Introduction to ios
Swapnali Pawar
 

What's hot (20)

Mobile App Marketing: The Ultimate Guide to Success
Mobile App Marketing: The Ultimate Guide to SuccessMobile App Marketing: The Ultimate Guide to Success
Mobile App Marketing: The Ultimate Guide to Success
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
 
iOS PPT
iOS PPTiOS PPT
iOS PPT
 
Firebase PPT
Firebase PPTFirebase PPT
Firebase PPT
 
Firebase
FirebaseFirebase
Firebase
 
Firebase - Dynamic Links
Firebase - Dynamic LinksFirebase - Dynamic Links
Firebase - Dynamic Links
 
PPT on iOS
PPT on iOS PPT on iOS
PPT on iOS
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
 
Introduction to Firebase
Introduction to FirebaseIntroduction to Firebase
Introduction to Firebase
 
Firebase
Firebase Firebase
Firebase
 
Introducing firebase
Introducing firebaseIntroducing firebase
Introducing firebase
 
iOS Introduction For Very Beginners
iOS Introduction For Very BeginnersiOS Introduction For Very Beginners
iOS Introduction For Very Beginners
 
Android Basic Concept
Android Basic Concept Android Basic Concept
Android Basic Concept
 
Android vs ios presentation detailed slides
Android vs ios presentation detailed slidesAndroid vs ios presentation detailed slides
Android vs ios presentation detailed slides
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Firebase Overview
Firebase OverviewFirebase Overview
Firebase Overview
 
Mobile app promotion strategy
Mobile app promotion strategyMobile app promotion strategy
Mobile app promotion strategy
 
Advertising On Instagram
Advertising On InstagramAdvertising On Instagram
Advertising On Instagram
 
Instagram Ads - Advertising on Instagram
Instagram Ads - Advertising on InstagramInstagram Ads - Advertising on Instagram
Instagram Ads - Advertising on Instagram
 
Introduction to ios
Introduction to iosIntroduction to ios
Introduction to ios
 

Viewers also liked

Mobile Push Notifications
Mobile Push NotificationsMobile Push Notifications
Mobile Push Notifications
Mike Willbanks
 
Push notifications
Push notificationsPush notifications
Push notifications
Ishaq Ticklye
 
Codefest-2015 Reactive Streams
Codefest-2015 Reactive StreamsCodefest-2015 Reactive Streams
Codefest-2015 Reactive Streams
Alexey Romanchuk
 
Php push notifications
Php push notificationsPhp push notifications
Php push notifications
Mohammed Shurrab
 
Creating Enterprise Friendly Apps
Creating Enterprise Friendly AppsCreating Enterprise Friendly Apps
Creating Enterprise Friendly AppsTony Lenzi
 
Push notification to the open web
Push notification to the open webPush notification to the open web
Push notification to the open web
Ahmed Gamal
 
Transforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big DataTransforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big Data
plumbee
 
Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS  Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS
Sparkbit
 
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Amazon Web Services
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notification
Olga Lavrentieva
 
AWS SQS for better architecture
AWS SQS for better architectureAWS SQS for better architecture
AWS SQS for better architecture
Saurabh Bangad
 
Push notifications
Push notificationsPush notifications
Push notifications
Dale Lane
 
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Amazon Web Services
 
Swagger 入門
Swagger 入門Swagger 入門
Swagger 入門
Yoshiaki Yoshida
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPIAkihiro Ikezoe
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
Takuro Sasaki
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
 

Viewers also liked (19)

Mobile Push Notifications
Mobile Push NotificationsMobile Push Notifications
Mobile Push Notifications
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Codefest-2015 Reactive Streams
Codefest-2015 Reactive StreamsCodefest-2015 Reactive Streams
Codefest-2015 Reactive Streams
 
Php push notifications
Php push notificationsPhp push notifications
Php push notifications
 
Creating Enterprise Friendly Apps
Creating Enterprise Friendly AppsCreating Enterprise Friendly Apps
Creating Enterprise Friendly Apps
 
Push notification to the open web
Push notification to the open webPush notification to the open web
Push notification to the open web
 
Transforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big DataTransforming Mobile Push Notifications with Big Data
Transforming Mobile Push Notifications with Big Data
 
Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS  Your Guide to Push Notifications - Comparing GCM & APNS
Your Guide to Push Notifications - Comparing GCM & APNS
 
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notification
 
AWS SQS for better architecture
AWS SQS for better architectureAWS SQS for better architecture
AWS SQS for better architecture
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Amazon simple queue service
Amazon simple queue serviceAmazon simple queue service
Amazon simple queue service
 
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
 
Swagger 入門
Swagger 入門Swagger 入門
Swagger 入門
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 

Similar to Push Notification

What’s New in iOS 8 SDK ?
What’s New in iOS 8 SDK ?What’s New in iOS 8 SDK ?
What’s New in iOS 8 SDK ?
E2LOGY
 
What's new in iOS Push Notifications
What's new in iOS Push NotificationsWhat's new in iOS Push Notifications
What's new in iOS Push Notifications
Prajwal S Prakash
 
How to Use Firebase to Send Push Notifications to React Native and Node.js Apps
How to Use Firebase to Send Push Notifications to React Native and Node.js AppsHow to Use Firebase to Send Push Notifications to React Native and Node.js Apps
How to Use Firebase to Send Push Notifications to React Native and Node.js Apps
valuebound
 
Accenture Digital: iOS 8 What You Need to Know
Accenture Digital: iOS 8 What You Need to KnowAccenture Digital: iOS 8 What You Need to Know
Accenture Digital: iOS 8 What You Need to Know
Apteligent
 
iOS 10 - What you need to know
iOS 10 - What you need to knowiOS 10 - What you need to know
iOS 10 - What you need to know
The App Business
 
Isha_chaoji_3_plus_iOS
Isha_chaoji_3_plus_iOSIsha_chaoji_3_plus_iOS
Isha_chaoji_3_plus_iOSIsha Chaoji
 
Server driven user interface (sdui) – framework for i os applications!
Server driven user interface (sdui) – framework for i os applications!Server driven user interface (sdui) – framework for i os applications!
Server driven user interface (sdui) – framework for i os applications!
Azilen Technologies Pvt. Ltd.
 
usi_portfolio
usi_portfoliousi_portfolio
usi_portfolioOleh Leha
 
Getting Started with AWS Mobile Hub
Getting Started with AWS Mobile HubGetting Started with AWS Mobile Hub
Getting Started with AWS Mobile Hub
Amazon Web Services
 
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
VMworld
 
Google MLkit
Google MLkitGoogle MLkit
Google MLkit
Navin Manaswi
 
Application component
Application componentApplication component
Application component
home
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
javalabsf
 
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
RightScale
 
Advance Mobile Application Development class 04
Advance Mobile Application Development class 04Advance Mobile Application Development class 04
Advance Mobile Application Development class 04
Dr. Mazin Mohamed alkathiri
 
Empower individuals with autism through coding
Empower individuals with autism through codingEmpower individuals with autism through coding
Empower individuals with autism through coding
livecode
 
Greenfield development of an enterprise mobile solution
Greenfield development of an enterprise mobile solutionGreenfield development of an enterprise mobile solution
Greenfield development of an enterprise mobile solution
Sigma Infosolutions, LLC
 
iOS Application Development Step by Step to develop an iOS App.pdf
iOS Application Development Step by Step to develop an iOS App.pdfiOS Application Development Step by Step to develop an iOS App.pdf
iOS Application Development Step by Step to develop an iOS App.pdf
JPLoft Solutions
 
IOS8 tuto by Phonevalley-DigitasLBi
IOS8 tuto by Phonevalley-DigitasLBiIOS8 tuto by Phonevalley-DigitasLBi
IOS8 tuto by Phonevalley-DigitasLBi
DigitasLBi Paris
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
james smith
 

Similar to Push Notification (20)

What’s New in iOS 8 SDK ?
What’s New in iOS 8 SDK ?What’s New in iOS 8 SDK ?
What’s New in iOS 8 SDK ?
 
What's new in iOS Push Notifications
What's new in iOS Push NotificationsWhat's new in iOS Push Notifications
What's new in iOS Push Notifications
 
How to Use Firebase to Send Push Notifications to React Native and Node.js Apps
How to Use Firebase to Send Push Notifications to React Native and Node.js AppsHow to Use Firebase to Send Push Notifications to React Native and Node.js Apps
How to Use Firebase to Send Push Notifications to React Native and Node.js Apps
 
Accenture Digital: iOS 8 What You Need to Know
Accenture Digital: iOS 8 What You Need to KnowAccenture Digital: iOS 8 What You Need to Know
Accenture Digital: iOS 8 What You Need to Know
 
iOS 10 - What you need to know
iOS 10 - What you need to knowiOS 10 - What you need to know
iOS 10 - What you need to know
 
Isha_chaoji_3_plus_iOS
Isha_chaoji_3_plus_iOSIsha_chaoji_3_plus_iOS
Isha_chaoji_3_plus_iOS
 
Server driven user interface (sdui) – framework for i os applications!
Server driven user interface (sdui) – framework for i os applications!Server driven user interface (sdui) – framework for i os applications!
Server driven user interface (sdui) – framework for i os applications!
 
usi_portfolio
usi_portfoliousi_portfolio
usi_portfolio
 
Getting Started with AWS Mobile Hub
Getting Started with AWS Mobile HubGetting Started with AWS Mobile Hub
Getting Started with AWS Mobile Hub
 
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
VMworld 2013: Integrating Enterprise Application with SAML to VMware Horizon ...
 
Google MLkit
Google MLkitGoogle MLkit
Google MLkit
 
Application component
Application componentApplication component
Application component
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
 
Advance Mobile Application Development class 04
Advance Mobile Application Development class 04Advance Mobile Application Development class 04
Advance Mobile Application Development class 04
 
Empower individuals with autism through coding
Empower individuals with autism through codingEmpower individuals with autism through coding
Empower individuals with autism through coding
 
Greenfield development of an enterprise mobile solution
Greenfield development of an enterprise mobile solutionGreenfield development of an enterprise mobile solution
Greenfield development of an enterprise mobile solution
 
iOS Application Development Step by Step to develop an iOS App.pdf
iOS Application Development Step by Step to develop an iOS App.pdfiOS Application Development Step by Step to develop an iOS App.pdf
iOS Application Development Step by Step to develop an iOS App.pdf
 
IOS8 tuto by Phonevalley-DigitasLBi
IOS8 tuto by Phonevalley-DigitasLBiIOS8 tuto by Phonevalley-DigitasLBi
IOS8 tuto by Phonevalley-DigitasLBi
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 

More from Software Infrastructure

Kotlin
KotlinKotlin
NoSql
NoSqlNoSql
Stream Analytics
Stream AnalyticsStream Analytics
Stream Analytics
Software Infrastructure
 
Quartz Scheduler
Quartz SchedulerQuartz Scheduler
Quartz Scheduler
Software Infrastructure
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Software Infrastructure
 
Deep Learning
Deep Learning Deep Learning
Deep Learning
Software Infrastructure
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Software Infrastructure
 
Java9
Java9Java9
Machine learning
Machine learningMachine learning
Machine learning
Software Infrastructure
 
Raspberry PI
Raspberry PIRaspberry PI
Golang
GolangGolang
Codename one
Codename oneCodename one
Hazelcast sunum
Hazelcast sunumHazelcast sunum
Hazelcast sunum
Software Infrastructure
 
Microsoft bot framework
Microsoft bot frameworkMicrosoft bot framework
Microsoft bot framework
Software Infrastructure
 
Blockchain use cases
Blockchain use casesBlockchain use cases
Blockchain use cases
Software Infrastructure
 
The Fintechs
The FintechsThe Fintechs
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
Software Infrastructure
 
.Net Core
.Net Core.Net Core
Java Batch
Java BatchJava Batch
Big Data & Hadoop
Big Data & HadoopBig Data & Hadoop
Big Data & Hadoop
Software Infrastructure
 

More from Software Infrastructure (20)

Kotlin
KotlinKotlin
Kotlin
 
NoSql
NoSqlNoSql
NoSql
 
Stream Analytics
Stream AnalyticsStream Analytics
Stream Analytics
 
Quartz Scheduler
Quartz SchedulerQuartz Scheduler
Quartz Scheduler
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Deep Learning
Deep Learning Deep Learning
Deep Learning
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Java9
Java9Java9
Java9
 
Machine learning
Machine learningMachine learning
Machine learning
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Golang
GolangGolang
Golang
 
Codename one
Codename oneCodename one
Codename one
 
Hazelcast sunum
Hazelcast sunumHazelcast sunum
Hazelcast sunum
 
Microsoft bot framework
Microsoft bot frameworkMicrosoft bot framework
Microsoft bot framework
 
Blockchain use cases
Blockchain use casesBlockchain use cases
Blockchain use cases
 
The Fintechs
The FintechsThe Fintechs
The Fintechs
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
.Net Core
.Net Core.Net Core
.Net Core
 
Java Batch
Java BatchJava Batch
Java Batch
 
Big Data & Hadoop
Big Data & HadoopBig Data & Hadoop
Big Data & Hadoop
 

Recently uploaded

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Push Notification

  • 1. 06.12.2016 Recep Düzdemir | Software Infrastructure Gizem Akman | Software Infrastructure Push Notification
  • 2. Push Notification  Push notification is the delivery of information from a software application to a computing device without a specific request from the client.  Message may contain notification, data or both.
  • 3.
  • 4. Push Notification Lifecycle Register Store Registration Token Send Message
  • 9. Firebase Cloud Messaging • HTTP API • XMPP API
  • 10. FCM HTTP API • @ https://gcm-http.googleapis.com/gcm/send • syncronous • supports multiple recipients and topics • no delivery receipt • unidirectional
  • 13. FCM HTTP Errors (Cont’d)
  • 14. FCM HTTP Errors (Cont’d)
  • 15. FCM XMPP API • @ fcm-xmpp.googleapis.com:5235 • asyncronous • supports single recipient only • bidirectional • returns delivery receipt
  • 17. FCM XMPP Errors (Cont’d)
  • 18. FCM XMPP Errors (Cont’d)
  • 19. Apple Push Notification Service (APNs) • Legacy API ( TCP) • HTTP/2 API
  • 20. APNs Binary API • @gateway.push.apple.com:2195 • supports up to 2KB payload • separate feedback service @ feedback.push.apple.com:2196 • returns no response in case of success • returns an error response in case of failure and immediately closes the connection
  • 21. APNs Binary API Response Format
  • 22. APNs HTTP/2 API • @api.push.apple.com:443 • supports up to 4KB payload
  • 24. APNs HTTP/2 Error Reasons
  • 25. APNs HTTP/2 Error Reasons (Cont’d)
  • 27. Q&A
  • 28.
  • 29. IOS 10 RICH NOTIFICATIONS  In iOS 10 notifications are becoming a key part of Apple's mobile operating system, and one of the primary way that users interact with apps.
  • 30. IOS 10 RICH NOTIFICATIONS  As part of the new UserNotifications framework, Apple has given us the ability to make notifications that contain images, sound, video, or even custom content generated on the device.  Much of this capability comes via three new features showcased at Worldwide Developers Conference(WWDC): media attachments, notification service extensions, and notification content extensions.  Including media in your push notification can increase the open rate.
  • 31. What’s new in iOS 10 Notifications?  Notifications can now contain images and gifs
  • 32. What’s new in iOS 10 Notifications?  It is now possible to add images and gifs to notifications.  These images or gifs can be loaded either from the resources of your app, or from a remote URL.  iOS will first download the image or gif and then display the notification.
  • 33. What’s new in iOS 10 Notifications?  Notifications can contain videos  Notifications can contain videos up to 50 megabytes in size.
  • 34. What’s new in iOS 10 Notifications?  Notifications can be interactive  Notifications can now contain buttons. Users can use action buttons to interact with notifications.  As with earlier versions of iOS, buttons can also be used to open your app and take specific actions. But unlike earlier versions, actions buttons are much more easily seen since they don't require a left- swipe on the notification.
  • 35. Why Media Attachments Are Awesome  Media attachments open up new opportunities for user engagement with our apps.  Before, we were limited to just a couple lines of text; we had to rely on the user opening the app to do anything more.  This is a win-win for app makers and users. App makers get to deliver more compelling content in their notifications, and users get more choice in their level of notification interaction.
  • 36. How They Work  Media attachments work slightly different between local notifications and remote notifications.  In the case of a local notification, its media attachment must contain the URL of a file on disk at the time that an app creates the notification.  The file is copied when the notification is scheduled, and that file is delivered along with the notification. No extra effort is required.
  • 37. How They Work  For a remote notification, a remote notification service delivers information about the media attachment as part of the APNS notification payload.  This includes the attachment URL, which, importantly, does not have to be the URL of a file already on the device.  However, iOS 10 will not automatically deliver an attachment with a notification if that attachment is not stored locally.  Apple’s solution to this problem is something called the Notification Service Extension.
  • 40. Notification Service Extension  Service extension lets you customize the content of a remote notification before it is delivered to the user.  You could use the extension to decrypt an encrypted data block or to download images associated with the notification.
  • 41. Notification Service Extension  At 4KB in size, a remote notification’s payload is too small to deliver a media attachment file itself.  Instead, we define an attachment URL in the remote notification payload.  Once a device receives the remote notification payload for our app, the app’s service extension gets the chance to download the file at the URL and attach it to the notification before the device displays the notification to the user.
  • 42. Notification Service Extension  How to add service extension to your application?
  • 43. Notification Service Extension  Add a new target to your project
  • 44. Notification Service Extension When you created the Service Extension, Xcode created the NotificationService.swift file and an Info.plist file.
  • 45. Notification Service Extension  We use the first function to download the content from the URL and add it to the notification. We should also handle network errors here.  We use the second function to handle the case where the first function runs out of time (as determined by iOS).
  • 46. Notification Service Extension How does iOS know which notifications to intercept?
  • 47. Notification Service Extension  Notification Payload  The mutable-content fields tells iOS that the notification has content that can be changed by a service extension before delivery
  • 48.  What if we don’t just want to serve up simple media files?  What if we want to generate custom content?
  • 49. Notification Content Extension  Notification Content Extension let you provide custom UI for your notifications.  A Notification Content Extension gives us a chance to process a notification and supply new content to the notification before it is displayed to the user.
  • 50. Notification Content Extension Most important things:  Custom views  Support for remote and local notifications  No interaction with views (possible only with notification actions)  Respond to notification actions
  • 51. Notification Content Extension  How to add content extension to your application?
  • 52. Notification Content Extension  Add a new target to your project
  • 53. Notification Content Extension MainInterface.storyboard : we will desing our notification UI in this. NotificationViewController.swift : a UIViewController subclass that will enable us to update our custom interface. When you created the Content Extension, Xcode created the NotificationViewController.swift file, a MainInterface.storyboard file and an Info.plist file.
  • 54. Notification Content Extension  How does the notification content extension work?
  • 55. Notification Content Extension  Set an identifier for UNNotificationExtensionCategory key in extension's Info.plist:
  • 56. Notification Content Extension  Remote Notifications  Local Notifications { aps: { category: ‘myNotificationCategory' } }
  • 58. Notification Content Extension  We may also implement optional functions that handle action button presses or display media playback controls.  How to add a custom action?
  • 59. Notification Actions  You can add up to four actions and each action is encompassed in a ‘category’.
  • 61. Android N Notifications  Notifications are become an important part of every Android application and it is an intelligent way to re-engage users with the installed apps.  Effectively used notifications will help application to get returning users.
  • 62. Android N Notifications  To provide a better user experience, notifications on Android N have received a visual refresh, improved support for custom views, and expanded functionality in the forms of Direct Reply, a new MessagingStyle, and bundled notifications.
  • 63. Android N Notifications  The first and most obvious change is that the default look and feel of notifications has significantly changed.  Many of the fields that were spread around the notifications have been collapsed into a new header row with your app’s icon and name anchoring the notification.  This change ensured that the title, text, and large icon are given the most amount of space possible and, as a result, notifications are generally slightly larger now and easier to read.
  • 65. Android N Notifications  Notification actions have also received a redesign and are now in a visually separate bar below the notification.
  • 66. Direct Reply  While notification actions have already been able to launch an Activity or do background work with a Service or BroadcastReceiver, Direct Reply allows you to build an action that directly receives text input inline with the notification actions.
  • 68. Android N Notifications  If you’re building a messaging app and expect back and forth conversations, you should use MessagingStyle and append the additional message to it.
  • 71. Bundled Notifications  Bundled notifications that appear grouped when a group ID has been set for each notification.
  • 72. Bundled Notifications  We can also display actions for notifications that are bundled.
  • 73. Custom View Notifications  We can now use custom views for notifications These can be for both collapsed and expanded notification layouts.
  • 75. Q&A

Editor's Notes

  1. iOS için content-available = silent notification Kavramlar karışmasın diye, gönderdiğimiz şeye mesaj diyelim. Notification = alert olarak ekranda görünen kısım (Display message) . Data = uygulamaya gönderilen bilgiler.
  2. Hiçbir pn sisteminde delivery garantisi yok. Servise gönderilen isteğin hata almaması, isteğin format olarak doğru olduğu ve gönderilmeye çalışılacağı anlamına gelir.
  3. APNs cihaza iletemezse yalnızca bir tane mesajı store ediyor. FCM 100 taneye kadar store ediyor. ( Collapse_key iOS için anlamsız)
  4. XMPP = Extensible Messaging and Presence Protocol
  5. iOS 10’da bildirimler daha önemli bir hale geldi ve kullanıcıların uygulamayla etkileşime geçmesinin başlıca yollarından biri oldu.
  6. Yeni UserNotifications framework’ü ile artık bildirimlere resim, ses, video ve custom içerik ekleyebiliyoruz. Bu yetenekler WWDC ‘de duyurulan service extension, content extension ve media attachments özellikleriye bir geldi. Bildirimlerde media içeriklerini kullanmak uygulamanın açılma oranını arttırıyor.
  7. Bu resim ve gif’ler uygulamanın resource’unda da bulunabilir, bir url’den de indirilebilir. Url’den yüklenecekse önce download işlemi yapılıyor daha sonra bildirim gösteriliyor.
  8. Bildirimlerde butonlar kullanabiliriz. Kullanıcılar bu butonları kullanarak bildirim ile etkileşime geçebilir. Eski versiyonlarda olduğu gibi butonlar uygulamanın açılması için kullanılabilir ama eski versiyonlardan farklı olarak butonlar artık daha kolay görünür hale geldi. Eskiden sola sürükleme ile görünürken şimdi bildirimin alt bölümünde bu butonlar görülebiliyor.
  9. Medya ekleri, uygulamalarımıza kullanıcıların katılımı için yeni fırsatlar yaratır. Önceden bildirimlerde birkaç satır text gösterebilirdik. Daha fazlası için kullanıcının uygulamayı açması gerekirdi. Yeni özellikler ile uygulama yazanlar bildirimlere daha şık içerikler ekleyebilir hale geldi, kullanıcılarda bildirimlerle daha fazla etkileşime geçer hale geldi.
  10. Medya ekleri local’de ve remote’da farklı şekilde çalışıyor. Lokalden bildirim yollanacaksa medya ekinin diskte bulunması gerekiyor.
  11. Remote notification’larda media ekleri için url’ler kullanılabilir. Ekler url’lerden downlod edilebilir. Bunun için de Service Extension özelliği geldi.
  12. Service extension’lar bildirim kullanıcıya gösterilmeden önce bildirimi customize edebilmemizi sağlıyor. Örneğin encrypted bir data kullanıcıya gösterilmeden önce decrypt edilebilir. Medya ekleri download edilebilir.
  13. Notification payload’lar max 4kb olduğu için medya ekini payload’da gönderemeyiz. Bunun yerine media ekini download edebileceğimiz url’i gönderebiliriz.
  14. Custom içerik göstermek istiyorsak ne yapmalıyız?
  15. Notification content extension bildirim kullanıcıya gösterilmeden önce bildirimin içeriğine göre custom UI’lar üretebilmemizi sağlar.
  16. UNNotificationExtensionInitialContentSizeRatio: number that represents the initial size of your view controller’s view expressed as a ratio of its height to its width. UNNotificationExtensionDefaultContentHidden: When set to YES, the system displays only your custom view controller in the notification interface. When set to NO, the system displays the default notification content in addition to your view controller’s content.
  17. Bildirimler, Android uygulamalarının önemli bir parçası haline geldi ve kullanıcıları yüklü uygulamalarla yeniden etkileşime geçirmenin akıllı bir yoludur. Etkili şekilde kullanılan bildirimler, kullanıcıları uygulamaya geri döndürmeye yardımcı olacaktır.
  18. Daha iyi bir kullanıcı deneyimi sağlamak için Android N'deki bildirimlere görsel yenileme, custom view’lar için daha gelişmiş destek, Direct Reply, MessagingStyle ve bundled notifications özellikleri geldi.
  19. Bildirimlerin default görünümünde değişiklikler oldu. Bazı alanlar bildirim içinde farklı yerlerde gösterilmeye başlandı. Bazı yeni alanlar eklendi. Bildirimler biraz daha genişledi ve okunması kolay hale getirildi.
  20. Notification action’lar yeniden dizayn edildi. Bildirimin altında ayrı bir bar’da gösterilmeye başlandı.
  21. En önemli yeniliklerden biri Direct Reply. Direct reply ile notification action’a bastığımızda bir text input ortaya çıkar. Bu text input’a bir değer girip bunu send butonu ile gönderebiliriz.
  22. Mesajlaşma uygulamaları için yeni gelen bir özellikte MessagingStyle. MessagingStyle ile önceki konuşmaları da bildirimde görebiliriz.
  23. Bu stil ile göstermek istediğimiz mesajları addMessage metodu ile ekleyebiliriz. Her bir mesajın timestamp’ini ve gönderen bilgisini set edebiliriz.
  24. Bildirimlere group id set ederek gruplayabiliriz. Bu da daha derli toplu bir görünüm sağlıyor.
  25. Bundle edilen bildirimlere de notification action’lar ekleyebiliriz.
  26. Hem expanded hem collapsed durumdaki bildirimler de custom view’lar kullanabiliriz.