Chatie App for Android & Ios & Web
Chatie.io - Make your own ChatBot in no language, in minutes.
Picture Credit: https://blog.ionicframework.com/angular-2-ionic/
- Passwordless Auth
- Serverless Deploy
- Languageless Programing
OS: Ubuntu 17.10
sudo apt install \
adb \
android-platform-tools-base \
android-sdk \
android-sdk-platform-23 \
android-sdk \
android-sdk-platform-tools
cd $ANDROID_HOME
# download link comes from https://developer.android.com/studio/index.html
wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
sudo unzip -n sdk-tools-linux-3859397.zip
sudo chmod +x \
tools/bin/sdkmanager \
tools/bin/avdmanager
# XXX: make sure the following line is required...?
sudo ./tools/bin/sdkmanager "build-tools;27.0.3"
# IMPORTANT: Accept all the licenses
./tools/bin/sdkmanager --licenses
./scripts/android.sh
# Ios: https://cocoapods.org/
$ sudo gem install cocoapods
./scripts/ios.sh
ionic cordova platform add browser
ionic cordova build browser --prod
- Xcode -> Product ->
- Build
- Archive
By adding ?BROLOG_LEVEL=silly
to URL, you can enable full debug output messages in the console.
For example:
- Angular Package Format v6.0, design document at Google Docs
- How to Build an Angular 5 Material App
- OAuth 2.0
- Silent Authentication
- Doc for Get User Info
- Calling your APIs with Auth0 tokens
- User profile claims and scope
- Tokens used by Auth0
- What is the right setup for Lock + SPA + Native + Rest API?
- Auth0 Ionic2 Quick Start
- Ionic 2 and Auth0(outdated: v0.9)
- Experimenting With Auth0 Passwordless Email Authentication In Angular 2.4.1
- OpenID Standard Claims
- Server + API Architecture Scenario
- Verify Access Tokens
- Auth0 + Scaphold
<<<<<<< HEAD
=======
ec6237233f54b2f152977a6b8964732ce6f054c4
How to use Observable.
- Functional Programming in Javascript
- How to build Angular 2 apps using Observable Data Services - Pitfalls to avoid
- 3 Common Rxjs Pitfalls that you might find while building Angular 2 Applications
- 10 Need-to-Know RxJS Functions with Examples
- Asynchronous Programming at Netflix - @Scale 2014 - Web
- RxJS, the smartest dumbest tool ever
- COLD VS HOT OBSERVABLES
- The Difference Between Throttling and Debouncing
- RxJS: Don’t Unsubscribe
A Progressive Web App(PWA) uses modern web capabilities to deliver an app-like user experience.
- Ionic PWA Doc
- Ionic PWA Blog
- Creating (near) native mobile web app (aka progressive web app) for iOS with Ionic 2
- Zero to GraphQL in 30 Minutes – Steven Luscher
- New features in GraphQL: Batch, defer, stream, live, and subscribe
- GraphQL(with Subscription) Backend As A Service
- Top Specification Formats for REST APIs
- Speed up your RESTful API development in Node.js with Swagger
- Medium.com API Specification
- Writing OpenAPI (Swagger) Specification Tutorial
- Hostie Event Page
- Hostie QR Code Push
- Store Publish
- Other
- Feedback enable Wilddog & Scrollglue
- Gavatar in menu with Matrix CSS
- Promote
Auth
service as a solo npm package auth-angular
- Upgrade to Ionic 3 & Angular 5
- GraphQL DB Integration
- Auth0 Integration
- FastLane.tools Integration
- Ionic DB Integration
- Build with Ionic/Angular 2
- Prototype with Ionic Creator
- Code & Docs © 2017-2018 Huan LI <[email protected]>
- Code released under the Apache-2.0 License
- Docs released under Creative Commons
title: "Welcome to the Platform!", description: "The Ionic Component Documentation showcases a number of useful components that are included out of the box with Ionic.",
title: "What is platform?", description: "Ionic Framework is an open source SDK that enables developers to build high quality mobile apps with web technologies like HTML, CSS, and JavaScript.",
title: "What isPlatform?", description: "The Ionic Platform is a cloud platform for managing and scaling Ionic apps with integrated services like push notifications, native builds, user auth, and live updating.",
import { Giftie } from '@chatie/giftie'
import { Botie } from '@chatie/botie'
const botie = new Botie()
const botie = new Botie('token')
try {
await botie.init()
await botie.test().pipe(
tap(progress => {
console.log('on progress...', progress)
})
).toPromise()
wechaty.addBotie(botie)
} catch (e) {
if ( e.instanceof(UnitTestingException )) {
// botie test fail
} else {
// other exception
}
}
function addBotie(botie: Botie): Promise<void> {
// const eventNameList = botie.eventNameList()
// const eventListenerList = botie.eventListenerList()
// for (const i in eventNameList) {
// this.addListener(eventNameList[i], eventListenerList[i])
// }
botie.bind(this)
botie.listener.subscribe.pipe(
tap(
(event, listener) => this.addListener(event, listener),
),
).toPromise()
}
function removeBotie(botie: Botie) Promise<void> {
botie.listener.subscribe.pipe(
tap(
(event, listener) => this.removeListener(event, listener),
),
).toPromise()
}
const wechaty = Wechaty.instance()
wechaty.setPuppet(new HostiePuppet('token'))
wechaty.start()