This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
00:00 +0: Firestore (setUpAll) | |
00:00 +1: Firestore getDocumentsWithFirestoreSettings | |
00:01 +2: Firestore getDocumentsFromCollection | |
00:02 +3: Firestore getDocumentsFromCollectionGroup | |
00:02 +4: Firestore increment | |
00:05 +5: Firestore includeMetadataChanges | |
00:06 +6: Firestore runTransaction | |
00:08 +7: Firestore pagination | |
00:11 +8: Firestore pagination with map | |
00:13 +9: Firestore FieldPath.documentId |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter_web/material.dart'; | |
import 'package:flutter_web_ui/ui.dart' as ui; | |
import 'dart:async'; | |
void main() async { | |
await ui.webOnlyInitializePlatform(); | |
runApp(MyApp()); | |
} | |
abstract class MyHomePageAction { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter_web/material.dart'; | |
import 'package:flutter_web_ui/ui.dart' as ui; | |
void main() async { | |
await ui.webOnlyInitializePlatform(); | |
runApp(MyApp()); | |
} | |
class MyApp extends StatelessWidget { | |
@override |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package me.amryousef.homedoor.common | |
import android.app.Application | |
import android.content.Context | |
import org.webrtc.Camera2Enumerator | |
import org.webrtc.EglBase | |
import org.webrtc.IceCandidate | |
import org.webrtc.MediaConstraints | |
import org.webrtc.PeerConnection | |
import org.webrtc.PeerConnectionFactory |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Dexie from "dexie"; | |
import { IRepositroy } from "./models/Repository"; | |
export class AppDatabase extends Dexie { | |
public repos: Dexie.Table<IRepositroy, number>; | |
constructor() { | |
super("sample-database"); | |
this.version(1).stores({ | |
repos: "++id,name,html_url,description" | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Observable, Observer } from "rxjs"; | |
import { AppDatabase } from "./AppDatabase"; | |
import { IRepositroy } from "./models/Repository"; | |
export class Dao { | |
private db: AppDatabase; | |
private observablesList: Array<Observer<IRepositroy[]>> = []; | |
constructor() { | |
this.db = new AppDatabase(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import axios from "axios"; | |
import { Observable, Observer } from "rxjs"; | |
import { IRepositroy } from "./models/Repository"; | |
export class ApiService { | |
private readonly baseUrl = "https://api.github.com/"; | |
public getRepos(): Observable<IRepositroy[]> { | |
return Observable.create(async (observer: Observer<IRepositroy[]>) => { | |
try { | |
const response = await axios.get<IRepositroy[]>( | |
`${this.baseUrl}orgs/facebook/repos` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Observable, of } from "rxjs"; | |
import { flatMap } from "rxjs/operators"; | |
import { ApiService } from "../data/ApiService"; | |
import { Dao } from "../data/Dao"; | |
import { IRepositroy } from "../data/models/Repository"; | |
export class ViewRepositoriesUseCase { | |
private readonly apiService: ApiService; | |
private readonly dataDao: Dao; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { action, observable } from "mobx"; | |
import { IRepositroy } from "../data/models/Repository"; | |
import { ViewRepositoriesUseCase } from "../domain/ViewRepositoriesUseCase"; | |
export class AppViewModel { | |
@observable public items: IRepositroy[] = []; | |
@observable public errors: string[] = []; | |
private readonly useCase: ViewRepositoriesUseCase; | |
constructor(useCase: ViewRepositoriesUseCase) { | |
this.useCase = useCase; | |
this.prepare(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { observer } from 'mobx-react'; | |
import * as React from 'react'; | |
import { AppViewModel } from './AppViewModel'; | |
@observer class App extends React.Component< {model: AppViewModel} ,{}> { | |
public render() { | |
return ( | |
<div> | |
<button onClick={this.props.model.refresh} >Refresh List</button> | |
<button onClick={this.props.model.clearData} >Clear List</button> |
NewerOlder