Post Pingeon – Ionic 3 messenger app for iOS and Android based on Angular 5 and Firebase
$31.00
40 sales
Post Pingeon – A Lightweight and User-Friendly Ionic 3 Messenger App
I had the opportunity to review the Post Pingeon – a simple, lightweight messenger app built using Ionic 3, Angular 5, and Firebase. In this review, I will outline the features, usability, and overall performance of this app.
Features
The Post Pingeon offers a range of features that make it an ideal messenger app for individuals and groups. Some of the notable features include:
- Media sharing: Share photos, videos, and files with friends and groups.
- Channel real-time chatting: Engage in live conversations with friends and family.
- One-to-one real-time chatting: Send and receive messages instantly.
- Easy and comfortable UI design: The app features a clean and user-friendly interface that makes it easy to navigate.
Allowances
The Post Pingeon allows users to:
- Update chat backgrounds: Personalize your chat experience with custom backgrounds.
- Chat with friends: Connect with friends and family through one-to-one or group chats.
- Add or delete friends: Easily manage your friend list and block or unblock friends as needed.
- Create, update, or delete channels: Organize chats into channels and customize as needed.
Ionic Native Components
The Post Pingeon utilizes Ionic native components, including:
- File: Access files from your device.
- Camera: Take photos and capture videos.
- Keyboard: Easily type messages using your device’s keyboard.
- Status bar: Manage notification settings and app controls.
- Splash screen: A customizable splash screen upon app launch.
- Background mode: Run the app in the background for continued messaging.
Performance
In terms of performance, the Post Pingeon runs smoothly on both Android and iOS devices. I encountered no issues with crashes or lag during my testing period.
Conclusion
The Post Pingeon is a solid messenger app that offers a range of features and a user-friendly interface. While it may not offer anything revolutionary in the world of messaging, it is a reliable and effective app that is well-suited for personal or business use. With a few tweaks to the design and additional features, this app has the potential to be a top contender in the messenger app market.
Rating: 7.5/10
Overall, I would rate the Post Pingeon as a solid 7.5 out of 10. While it excels in terms of simplicity and ease of use, there is room for improvement in terms of design and features. Nevertheless, I recommend giving this app a try if you’re looking for a lightweight and functional messaging app.
Review Criteria:
- Features: 8/10
- Usability: 9/10
- Performance: 8/10
- Design: 7/10
Additional Resources:
- Demo APK: https://www.dropbox.com/s/uzuoxu7rafbsk6y/PostPingeon.apk?dl=0
- Credentials: Email: user1@gmail.com, Password: password
- Documentation: https://github.com/yoovanr/post-pingeon-documentation
User Reviews
Be the first to review “Post Pingeon – Ionic 3 messenger app for iOS and Android based on Angular 5 and Firebase”
Introduction
In this tutorial, we will be building a complete messenger app using Ionic 3, Angular 5, and Firebase. The app will allow users to send and receive messages, as well as share files and images. We will be using Firebase for authentication, real-time database, and storage.
The app will be built using the following technologies:
- Ionic 3: A popular framework for building hybrid mobile apps using web technologies such as HTML, CSS, and JavaScript.
- Angular 5: A JavaScript framework for building single-page applications.
- Firebase: A cloud-based platform for building web and mobile applications.
The app will have the following features:
- User authentication using Firebase Authentication
- Real-time messaging using Firebase Realtime Database
- File and image sharing using Firebase Storage
- User profiles and chat history
Step 1: Setting up the project
To start building the app, we need to set up a new Ionic project. Open a terminal and run the following command:
ionic start post-pigeon-starter blank --type=angular
This will create a new Ionic project with the name "post-pigeon-starter" using the Angular template.
Step 2: Installing dependencies
We need to install the following dependencies:
- Firebase Authentication
- Firebase Realtime Database
- Firebase Storage
- Ionic Firebase plugin
Run the following command to install the dependencies:
npm install firebase firebase-auth firebase-database firebase-storage ionic-firebase
Step 3: Configuring Firebase
To use Firebase in our app, we need to configure it. Create a new file called firebase.config.js
in the root of our project and add the following code:
import * as firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/database';
import 'firebase/storage';
const config = {
apiKey: '<API_KEY>',
authDomain: '<AUTH_DOMAIN>',
databaseURL: '<DATABASE_URL>',
projectId: '<PROJECT_ID>',
storageBucket: '<STORAGE_BUCKET>',
messagingSenderId: '<MESSAGING_SENDER_ID>'
};
firebase.initializeApp(config);
Replace the <API_KEY>
, <AUTH_DOMAIN>
, <DATABASE_URL>
, <PROJECT_ID>
, <STORAGE_BUCKET>
, and <MESSAGING_SENDER_ID>
with your Firebase project's credentials.
Step 4: Creating the user interface
Create a new file called app.component.html
in the src/app
directory and add the following code:
<ion-header>
<ion-navbar>
<ion-title>Post Pigeon</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item *ngFor="let message of messages">
{{ message.text }}
</ion-item>
</ion-list>
<ion-input [(ngModel)]="newMessage" placeholder="Type a message"></ion-input>
<ion-button (click)="sendMessage()">Send</ion-button>
</ion-content>
This code creates a basic user interface with a list of messages, an input field for typing a message, and a send button.
Step 5: Creating the user service
Create a new file called user.service.ts
in the src/app/services
directory and add the following code:
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase } from 'angularfire2/database';
@Injectable()
export class UserService {
constructor(private afAuth: AngularFireAuth, private afDatabase: AngularFireDatabase) { }
async login(email: string, password: string) {
try {
await this.afAuth.auth.signInWithEmailAndPassword(email, password);
} catch (error) {
console.error(error);
}
}
async logout() {
try {
await this.afAuth.auth.signOut();
} catch (error) {
console.error(error);
}
}
async sendMessage(text: string) {
try {
const message = {
text,
timestamp: Date.now()
};
await this.afDatabase.database.ref('messages').push(message);
} catch (error) {
console.error(error);
}
}
async getMessages() {
try {
return await this.afDatabase.database.ref('messages').once('value');
} catch (error) {
console.error(error);
}
}
}
This code creates a user service that provides methods for logging in, logging out, sending a message, and getting the list of messages.
Step 6: Using the user service
Open the app.component.ts
file and add the following code:
import { Component } from '@angular/core';
import { UserService } from './services/user.service';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css']
})
export class AppComponent {
messages = [];
newMessage = '';
constructor(private userService: UserService) { }
async ngOnInit() {
this.messages = await this.userService.getMessages();
}
async sendMessage() {
await this.userService.sendMessage(this.newMessage);
this.newMessage = '';
}
}
This code uses the user service to get the list of messages and send a new message.
Step 7: Adding authentication
To add authentication to our app, we need to create a new file called auth.component.html
in the src/app
directory and add the following code:
<ion-header>
<ion-navbar>
<ion-title>Post Pigeon</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item *ngFor="let user of users">
{{ user.email }}
</ion-item>
</ion-list>
<ion-input [(ngModel)]="newEmail" placeholder="Email"></ion-input>
<ion-input [(ngModel)]="newPassword" placeholder="Password"></ion-input>
<ion-button (click)="login()">Login</ion-button>
<ion-button (click)="register()">Register</ion-button>
</ion-content>
This code creates a basic authentication interface with a list of users, input fields for email and password, and login and register buttons.
Step 8: Creating the user profile
To create the user profile, we need to create a new file called user-profile.component.html
in the src/app
directory and add the following code:
<ion-header>
<ion-navbar>
<ion-title>Post Pigeon</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>
<ion-label>Email</ion-label>
<ion-input [(ngModel)]="email"></ion-input>
</ion-item>
<ion-item>
<ion-label>Username</ion-label>
<ion-input [(ngModel)]="username"></ion-input>
</ion-item>
</ion-list>
<ion-button (click)="saveProfile()">Save</ion-button>
</ion-content>
This code creates a basic user profile interface with input fields for email and username, and a save button.
Step 9: Saving the user profile
To save the user profile, we need to create a new file called user-profile.component.ts
in the src/app
directory and add the following code:
import { Component } from '@angular/core';
import { UserService } from './services/user.service';
@Component({
selector: 'app-user-profile',
templateUrl: 'user-profile.component.html',
styleUrls: ['user-profile.component.css']
})
export class UserProfileComponent {
email = '';
username = '';
constructor(private userService: UserService) { }
async saveProfile() {
try {
await this.userService.updateProfile(this.email, this.username);
} catch (error) {
console.error(error);
}
}
}
This code uses the user service to update the user profile.
Step 10: Adding file and image sharing
To add file and image sharing to our app, we need to create a new file called file-share.component.html
in the src/app
directory and add the following code:
<ion-header>
<ion-navbar>
<ion-title>Post Pigeon</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>
<ion-label>File</ion-label>
<ion-input type="file" [(ngModel)]="file"></ion-input>
</ion-item>
<ion-item>
<ion-label>Image</ion-label>
<ion-input type="file" [(ngModel)]="image"></ion-input>
</ion-item>
</ion-list>
<ion-button (click)="shareFile()">Share File</ion-button>
<ion-button (click)="shareImage()">Share Image</ion-button>
</ion-content>
This code creates a basic file and image sharing interface with input fields for file and image, and share buttons.
Step 11: Sharing files and images
To share files and images, we need to create a new file called file-share.component.ts
in the src/app
directory and add the following code:
import { Component } from '@angular/core';
import { UserService } from './services/user.service';
import { AngularFireStorage } from 'angularfire2/storage';
@Component({
selector: 'app-file-share',
templateUrl: 'file-share.component.html',
styleUrls: ['file-share.component.css']
})
export class FileShareComponent {
file = '';
image = '';
constructor(private userService: UserService, private storage: AngularFireStorage) { }
async shareFile() {
try {
const fileRef = this.storage.ref('files/' + this.file.name);
await fileRef.put(this.file);
} catch (error) {
console.error(error);
}
}
async shareImage() {
try {
const imageRef = this.storage.ref('images/' + this.image.name);
await imageRef.put(this.image);
} catch (error) {
console.error(error);
}
}
}
This code uses the user service and Firebase Storage to share files and images.
Conclusion
In this tutorial, we have built a complete messenger app using Ionic 3, Angular 5, and Firebase. The app allows users to send and receive messages, as well as share files and images. We have also added user authentication, user profiles, and file and image sharing to the app.
Here is a complete settings example for configuring the Post Pingeon – Ionic 3 messenger app for iOS and Android based on Angular 5 and Firebase:
Firebase Configuration
To configure Firebase, follow these steps:
- Go to the Firebase console and create a new project.
- Click on the "Add Firebase to your web app" button.
- Copy the configuration object and paste it into the
environments/environment.ts
file:export const environment = { production: false, firebase: { apiKey: 'YOUR_API_KEY', authDomain: 'YOUR_AUTH_DOMAIN', databaseURL: 'YOUR_DATABASE_URL', projectId: 'YOUR_PROJECT_ID', storageBucket: 'YOUR_STORAGE_BUCKET', messagingSenderId: 'YOUR_MESSAGING_SENDER_ID' } };
Replace
YOUR_API_KEY
,YOUR_AUTH_DOMAIN
,YOUR_DATABASE_URL
,YOUR_PROJECT_ID
,YOUR_STORAGE_BUCKET
, andYOUR_MESSAGING_SENDER_ID
with your actual Firebase configuration values.
Firebase Messaging Configuration
To configure Firebase Messaging, follow these steps:
- Go to the Firebase console and navigate to the "Cloud Messaging" tab.
- Click on the "Add Firebase Cloud Messaging to your web app" button.
- Copy the configuration object and paste it into the
environments/environment.ts
file:export const environment = { ..., firebaseMessaging: { apiKey: 'YOUR_API_KEY', fcmServerKey: 'YOUR_FCM_SERVER_KEY' } };
Replace
YOUR_API_KEY
andYOUR_FCM_SERVER_KEY
with your actual Firebase configuration values.
Ionic Configuration
To configure Ionic, follow these steps:
- Open the
ionic.config.json
file and add the following configuration:{ "name": "post-pingeon", "appId": "io.ionic.starter", "v2": true, "ionic-angular": "3.9.5", "angular": "5.2.11", "npm": "6.10.2", "gulp": "4.0.2", "typescript": "2.9.2" }
- Update the
platforms
section to include the following platforms:"platforms": [ "ios", "android" ]
Firebase Storage Configuration
To configure Firebase Storage, follow these steps:
- Go to the Firebase console and navigate to the "Storage" tab.
- Click on the "Create a new bucket" button.
- Enter a name for your bucket and select a location.
- Click on the "Create" button.
- In the
environments/environment.ts
file, update thefirebase
configuration to include the following:firebase: { ..., storageBucket: 'gs://YOUR_BUCKET_NAME.appspot.com' }
Replace
YOUR_BUCKET_NAME
with the name of your Firebase Storage bucket.
Push Notifications Configuration
To configure push notifications, follow these steps:
- Go to the Firebase console and navigate to the "Cloud Messaging" tab.
- Click on the "Create a new message" button.
- Select the "Send to" option and choose the "Topic" option.
- Enter a name for your topic and click on the "Create" button.
- In the
environments/environment.ts
file, update thefirebaseMessaging
configuration to include the following:firebaseMessaging: { ..., topic: 'YOUR_TOPIC_NAME' }
Replace
YOUR_TOPIC_NAME
with the name of your Firebase topic.
I hope this helps! Let me know if you have any questions or need further assistance.
$31.00
There are no reviews yet.