Skip to content

Instantly share code, notes, and snippets.

View azamsharp's full-sized avatar

Mohammad Azam azamsharp

View GitHub Profile
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
StockListViewModel _vm;
@override
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:stocks_app_flutter/pages/home_page.dart';
import 'package:stocks_app_flutter/view_models/stock_list_view_model.dart';
void main() => runApp(App());
class App extends StatelessWidget {
@azamsharp
azamsharp / .dart
Last active January 7, 2020 21:43
import 'package:flutter/material.dart';
import 'package:stocks_app_flutter/models/stock.dart';
import 'package:stocks_app_flutter/services/webservice.dart';
class StockListViewModel extends ChangeNotifier {
List<StockViewModel> stocks = List<StockViewModel>();
List<StockViewModel> allStocks = List<StockViewModel>();
Future<void> fetchStocks() async {
class Stock {
final String symbol;
final String company;
final double price;
final String change;
Stock({this.symbol, this.company, this.price, this.change});
factory Stock.fromJson(Map<String, dynamic> json) {
return Stock(
import 'package:stocks_app_flutter/models/stock.dart';
import 'package:http/http.dart' as http;
class Webservice {
Future<List<Stock>> getStocks() async {
final url = "https://silicon-rhinoceros.glitch.me/stocks";
final response = await http.get(url);
if (response.statusCode == 200) {
// init project
const express = require("express");
const app = express();
app.get("/stocks", (req, res) => {
let stocks = [
{
symbol: "GOOG",
description: "Google Innovation Media",
//
// StockListView.swift
// stocks
//
// Created by Mohammad Azam on 12/22/19.
// Copyright © 2019 Mohammad Azam. All rights reserved.
//
import SwiftUI
//
// ContentView.swift
// stocks
//
// Created by Mohammad Azam on 12/22/19.
// Copyright © 2019 Mohammad Azam. All rights reserved.
//
import SwiftUI
import Foundation
import SwiftUI
class StockListViewModel: ObservableObject {
@Published var searchTerm: String = ""
@Published var stocks: [StockViewModel] = [StockViewModel]()
func load() {
fetchStocks()
struct StockViewModel {
let stock: Stock
var symbol: String {
return self.stock.symbol.uppercased()
}
var description: String {
return self.stock.description