Articles For Report
Articles For Report
A Brief History
Back in 2011, before Firebase was Firebase, it was a startup called
Envolve. As Envolve, it provided developers with an API that
enabled the integration of online chat functionality into their
website.
What’s interesting is that people used Envolve to pass application
data that was more than just chat messages. Developers were
using Envolve to sync application data such as a game state in real
time across their users.
This led the founders of Envolve, James Tamplin and Andrew Lee,
to separate the chat system and the real-time architecture. In April
2012, Firebase was created as a separate company that provided
Backend-as-a-Service with real-time functionality.
Firebase Services
Firebase Services can be divided into two groups:
Develop & test your app
Realtime Database
Auth
Test Lab
Crashlytics
Cloud Functions
Firestore
Cloud Storage
Performance Monitoring
Crash Reporting
Hosting
Firebase Analytics
Invites
Cloud Messaging
Predictions
AdMob
Dynamic Links
Adwords
Remote Config
App Indexing
Realtime Database
The Firebase Realtime Database is a cloud-hosted NoSQL
database that lets you store and sync between your users in
realtime.
The Realtime Database is really just one big JSON object that the
developers can manage in realtime.
With just a single API, the Firebase database provides your app
with both the current value of the data and any updates to that
data.
Realtime syncing makes it easy for your users to access their data
from any device, be it web or mobile. Realtime Database also helps
your users collaborate with one another.
When your users go offline, the Realtime Database SDKs use local
cache on the device to serve and store changes. When the device
comes online, the local data is automatically synchronized.
Authentication
Firebase Authentication provides backend services, easy-to-use
SDKs, and ready-made UI libraries to authenticate users to your
app.
Phone numbers
Facebook
Twitter
& more!
You can send notification messages (2KB limit) and data messages
(4KB limit).
The best thing about FCM is that there is hardly any coding
involved! FCM is completely integrated with Firebase Analytics,
giving you detailed engagement and conversion tracking.
You can also use A/B testing to try out different versions of your
notification messages, and then select the one which performs best
against your goals.
orderByKey()
orderByChild(‘child’)
orderByValue()
orderByPriority()
Robo Test
This test is for people who just want to relax and let Firebase
worry about tests. Firebase Test Labs can simulate user touch and
see how each component of the app functions.
Test Labs support game app testing. It comes with a beta support
for using a “demo mode” where the game app runs while
simulating the actions of the player.
Remote Config
Remote config essentially allows us to publish updates to our users
immediately. Whether we wish to change the color scheme for a
screen, the layout for a particular section in our app or show
promotional/seasonal options — this is completely doable using
the server side parameters without the need to publish a new
version.
Firebase can now modify deep links into Dynamic Links! Dynamic
Links allow the user to directly come to a particular location in
your app.
Adafruit
Adafruit IO HTTP API provides excess to your Adafruit IO data from any programming
language or hardware environment that can speak Adafruit HTTP. The easiest way to get
started is with an adafruit learning guide and a simple internet of things capable device
like the Feather Huzzah or a more complicated one like the Pyportal.
Authentication:
Your adafruit IO is used to restrict or grant access to your data. The key is unique and
covers every use of the adafruit IO API for your account. You can access any key on your
dashboard by clicking on the golden key icon
Or by clicking on the “view AIO key” link in the sidebar while you are visiting adafruit IO.
Now you can copy the key directly from the information from that pop-up, or copy one of
the code samples that includes your username and key together.
Including an adafruit IO key
When making HTTP requests to adafruit IO, you can include the API key as a query
parameter named x-aio-key or a request header named X-AIO-Key. In both cases “X-
AIO-Key” is case insensitive
Note:
If you regerate your AIO key, your old key will be immediately invalidated, so you will
have to replace it in any scripts or sketches where it is in use.
Client Libraries
We have iots of client libraries to help you get started with your project:
Arduino C++
CircuitPython
Python
Ruby
Note:
The following two libraries use V1 of the adafruit API which have been deprecated
Node.js
Go
Rate Limiting
If you have a free adafruit IO account, the rate limit is 30 data points per
limit.
If you
have upgr
aded to
an
Adafruit
IO Plus
account,
the base
rate limit
is 60 data
points
per
minute.
If you
exceed
this limit,
a notice
will be
sent to
the {usern
ame}/thro
ttle MQT
T topic.
You can
subscribe
to the
topic if
you wish
to know
when the
Adafruit
IO rate
limit has
been
exceeded
for your
user
account.
This limit
applies to
all Data
record
modificat
ion action
s over the
HTTP and
MQTT
APIs, so if
you have
multiple
devices or
clients
publishin
g data, be
sure to
delay
their
updates
enough
that the
total rate
is below
your
account
limit.
One data
record
modificat
ion is any
action
that
creates,
updates,
or deletes
a single
Data
record.
Pagi
natio
n
Adafruit
IO’s API
returns at
most
1000 data
points at
a time. To
get more
data if
your feed
is over
1000 data
points,
you’ll
need to
“paginate
” the data.
What
does this
mean?
When you
perform a
n HTTP
data GET
qbuery,
the results
are always
sorted
newest-
to-oldest
and
include
5 X-
Paginatio
n-* heade
rs and the
Link
header
field in
the
response.
You can
see an
example
of the
headers
on the
right.
Powerful API
The same API that drives our user interface is available to you. We provide
documentation so you can build a library in your favorite language to talk
to IO, or use one of ours.
It's Your Data
The data you store with IO is yours to manage and control. You can
download it all anytime and we will never sell or give it away to another
company. We feel strongly enough about this that we put it in our IoT Bill
of Rights.
Beautiful Dashboards
Data won't help you make better decisions or understand the world you're
living in unless you can see it. Charts, graphs, gauges, logging, and more
are availble from anywhere in our carefully designed web-based
dashboards.
Documentation
We've written a lot more about Adafruit IO than just our web API. Teaching
is at the heart of Adafruit, and our Learning Systemhas all the projects
and guides you need to get started or to level up!
Triggers
Hardware
We have been building Internet of Things devices and kits since long
before Adafruit IO ever existed. Start your project with the right
equipment or pick up the one last thing you need to finish. We've got
hardware for all types of makers.
Amazing Community
We Love Makers! Join us on the forums, on our Discord chat server, stop
by the weekly Show and Tell live stream to share your project,
and subscribe to our YouTube channel to see what we're up to.
IFTTT Applets
If This Then That, also known as IFTTT (/ɪft/),[7] is a free web-based service to create chains of
simple conditional statements, called applets.
An applet is triggered by changes that occur within other web services such
as Gmail, Facebook, Telegram, Instagram, or Pinterest.[8]
For example, an applet may send an e-mail message if the user tweets using a hashtag, or copy a
photo on Facebook to a user's archive if someone tags a user in a photo. [9]
In addition to the web-based application, the service runs on iOS and Android. In February 2015,
IFTTT renamed its original application to IF, and released a new suite of apps called Do, which lets
users create shortcut applications and actions.[10] As of 2015, IFTTT users created about 20 million
recipes each day.[11] All of the functionalities of the Do suite of apps have since been integrated into a
redesigned IFTTT app.
Overview[edit]
Services (formerly known as channels) are the basic building blocks of IFTTT. [23] They mainly
describe a series of data from a certain web service such as YouTube or eBay. Services can
also describe actions controlled with certain APIs, like SMS. Sometimes, they can represent
information in terms of weather or stocks.[24] Each service has a particular set of triggers and
actions.[25]
Triggers are the "this" part of an applet. They are the items that trigger the action. For
example, from an RSS feed, you can receive a notification based on a keyword or phrase.[9]
Actions are the "that" part of an applet. They are the output that results from the input of the
trigger.
Applets (formerly known as recipes) are the predicates made from Triggers and Actions. For
example, if you like a picture on Instagram (trigger), an IFTTT app can send the photo to
your Dropbox account (action).[23]
Ingredients are basic data available from a trigger—from the email trigger, for example;
subject, body, attachment, received date, and sender’s address.[23]
Usage examples[edit]
IFTTT can automate web-application tasks, such as posting the same content on several
social networks.
Marketing professionals can use IFTTT to track mentions of companies in RSS feeds.[26]
IFTTT also is used in home automation, for instance switching on a light when detecting
motion in a room (with associated compliant devices).[16]
For example: let’s say that you are a photography fan who uses
Instagram constantly throughout the day. You love taking photos with your
mobile device, touching them up and sharing them for everyone to see. Your
followers seem to love the photos, so you think that maybe you’d like to get
a bit more serious about this whole photography endeavor.
Whatever the case may be for you, you will eventually ask yourself if there’s
a way to do the more repetitive tasks automatically. This is where IFTTT
comes into play. Using the tools laid out in this guide, you’ll be able to save
enormous amounts of precious time that you can use as you see fit later on.
If you’re an iOS user, you can also get robust automation tools using
iPhone Shortcuts.
The example: Imagine that you’re walking near a park. All of a sudden you
spot a potential photography idea right in front of you. What do you do? You
take out your mobile device, shoot with your Instagram app and use IFTTT to
automatically save the shot to your Dropbox account. No manual selecting
and manual uploading. Create beautiful images — IFTTT will take care of the
upload in the background so that they are accessible on your computer later.
Android studio
Android Studio is the official[7] integrated development environment (IDE)
for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed
specifically for Android development.[8] It is available for download
on Windows, macOS and Linux based operating systems.[9][10] It is a replacement for the Eclipse
Android Development Tools (ADT) as the primary IDE for native Android application development.
Android Studio was announced on May 16, 2013 at the Google I/O conference. It was in early
access preview stage starting from version 0.1 in May 2013, then entered beta stage starting from
version 0.8 which was released in June 2014.[11] The first stable build was released in December
2014, starting from version 1.0.[12]
Since 7 May 2019, Kotlin is Google’s preferred language for Android app development.[13] Still, other
languages are supported, including by Android Studio.
Features[edit]
The following features are provided in the current stable version:[14][15]
Lint tools to catch performance, usability, version compatibility and other problems
A rich layout editor that allows users to drag-and-drop UI components, option to preview
layouts on multiple screen configurations[16]
Built-in support for Google Cloud Platform, enabling integration with Firebase Cloud
Messaging (Earlier 'Google Cloud Messaging') and Google App Engine[17]
Android Virtual Device (Emulator) to run and debug apps in the Android studio.
Android studio
Android Studio is the official Integrated Development Environment (IDE) for Android app
development, based onIntelliJ IDEA . On top of IntelliJ's powerful code editor and
developer tools, Android Studio offers even more features that enhance your
productivity when building Android apps, such as:
This page provides an introduction to basic Android Studio features. For a summary of
the latest changes, seeAndroid Studio release notes.
Project structure
Each project in Android Studio contains one or more modules with source code files and
resource files. Types of modules include:
By default, Android Studio displays your project files in the Android project view, as
shown in figure 1. This view is organized by modules to provide quick access to your
project's key source files.
All the build files are visible at the top level under Gradle Scriptsand each app module
contains the following folders:
java: Contains the Java source code files, including JUnit test code.
res: Contains all non-code resources, such as XML layouts, UI strings, and bitmap
images.
The Android project structure on disk differs from this flattened representation. To see
the actual file structure of the project, select Project from the Project dropdown (in
figure 1, it's showing as Android).
You can also customize the view of the project files to focus on specific aspects of your
app development. For example, selecting the Problems view of your project displays
links to the source files containing any recognized coding and syntax errors, such as a
missing XML element closing tag in a layout file.
Figure 2. The project files in Problems view, showing a layout file with a problem.
You can organize the main window to give yourself more screen space by hiding or
moving toolbars and tool windows. You can also use keyboard shortcuts to access most
IDE features.
At any time, you can search across your source code, databases, actions, elements of
the user interface, and so on, by double-pressing the Shift key, or clicking the
magnifying glass in the upper right-hand corner of the Android Studio window. This can
be very useful if, for example, you are trying to locate a particular IDE action that you
have forgotten how to trigger.
Tool windows
Instead of using preset perspectives, Android Studio follows your context and
automatically brings up relevant tool windows as you work. By default, the most
commonly used tool windows are pinned to the tool window bar at the edges of the
application window.
To expand or collapse a tool window, click the tool’s name in the tool window bar. You
can also drag, pin, unpin, attach, and detach tool windows.
To return to the current default tool window layout, click Window > Restore Default
Layout or customize your default layout by clicking Window > Store Current Layout as
Default.
To show or hide the entire tool window bar, click the window icon in the bottom left-
hand corner of the Android Studio window.
To locate a specific tool window, hover over the window icon and select the tool window
from the menu.
You can also use keyboard shortcuts to open tool windows. Table 1 lists the shortcuts
for the most common windows.
If you want to hide all toolbars, tool windows, and editor tabs, click View > Enter
Distraction Free Mode. This enables Distraction Free Mode. To exit Distraction Free
Mode, click View > Exit Distraction Free Mode.
You can use Speed Search to search and filter within most tool windows in Android
Studio. To use Speed Search, select the tool window and then type your search query.
Code completion
Android Studio has three types of code completion, which you can access using
keyboard shortcuts.
Basic Displays basic suggestions for variables, types, methods, Control+Space Control+Spac
Completion expressions, and so on. If you call basic completion twice in
a row, you see more results, including private members and
non-imported static members.
Smart Displays relevant options based on the context. Smart Control+Shift+Spac Control+Shift
Completion completion is aware of the expected type and data flows. If e
you call Smart Completion twice in a row, you see more
results, including chains.
Statement Completes the current statement for you, adding missing Control+Shift+Enter Shift+Comma
Completion parentheses, brackets, braces, formatting, etc.
You can also perform quick fixes and show intention actions by pressing Alt+Enter.