Skip to content

Instantly share code, notes, and snippets.

View saamerm's full-sized avatar
💭
Answering Questions, & Questioning Answers

Saamer Mansoor saamerm

💭
Answering Questions, & Questioning Answers
View GitHub Profile
@saamerm
saamerm / NetworkMonitor.swift
Created March 26, 2024 18:47
An Internet Connectivity class in swift language, to add a check to see if the device is connected to the internet, and an example of how it is implemented in SwiftUI
import Network
class NetworkMonitor: ObservableObject {
@Published var isInternetAvailable = false
init() {
startMonitoring()
}
@saamerm
saamerm / AppScript.js
Last active January 5, 2024 02:15
App Script to get info from a tracker connected to this https://codepen.io/saamerm/pen/yLwYvXe
function doGet(request){
var result = processRequest(request);
return ContentService
.createTextOutput(result)
.setMimeType(ContentService.MimeType.TEXT);
}
function processRequest(e)
{
// Open Google Sheet using ID
# N.B. When changing this file, run this in the Terminal to load the updated values: 'npm run start -- --reset-cache'
NODE_ENV=development
# the URL to the GraphQL api
API_URL=https://sonesta-gateway-test.azure-api.net/member/graphql
API_URL_GUEST=https://sonesta-gateway-test.azure-api.net/guest/graphql
API_URL_HEALTHCHECK=https://sonesta-gateway-test.azure-api.net/healthcheck/v1.1/heartbeat
API_SUBSCRIPTION_KEY=5e60f927beb2407195a1ca72583c1507
@saamerm
saamerm / EmailCollectionAppScript.js
Created January 10, 2023 14:23
Email Collection App Script javascript code
function doPost(request){
var resultObject = JSON.parse(request.postData.contents);
var result = processResult(resultObject);
return ContentService
.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}
function processResult(resultObject)
{
@saamerm
saamerm / alertlottie.json
Created July 15, 2022 23:01
An alert Lottie json file
{"v":"5.7.1","fr":15,"ip":10,"op":45,"w":500,"h":500,"nm":"Comp 2","ddd":0,"assets":[{"id":"image_0","w":844,"h":821,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0wAAAM1CAMAAAB0boGMAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAARVBMVEVHcEz4t6j3ppT4r5770sn/9vP/8O3+4tz62tP/6eX5v7H7zMH2nYnzf2XzinH1lH7////xc1b5xbnwZ0fvWzntQhzuTys7zAZPAAAAF3RSTlMAYXdsPAwUJzIdVkWDrJ6QBbxOzd397XBBxq0AACAASURBVHja7J3Lduu4DkQ1MClx9UT//7X3nkQiUUCBpF+JHQNW/La7B96ngAJILUtERERERERExGzs5CoiImIGG31hV+r1iIgIjsbXvX/Hflyrq51C9fVkkBXxgRrUfv9f9/dvgvYDo6V3tezmrXulC744IuJTlKjJzyKwOAMemFjk3QpYxS2YivgAjBalPpagPkXyrerTS8sGBVUBVcSfgkhK0QLlz4NDyp2ANmQq4q/kdI2jqRTuMUxptEKmIt4/pavF0FwOl/4dc1dXSFVzOZbgKeKdSLJytPT5OfA47uz1ilEkX03qYz2lEkVWiFTEu1RHO5h1XQFKp8YkT5PIE/i0+PyUaIVIRbyHHi3GoKM6dCDAGEn/j3q1J/XE8exxl6hTArEbOoFLeBMRL1chLVj3OwglyZDC5zzasy5OxxvUQfK+QQKIvamIiNcQpN11vFvmJSESpNSH53VKQpkSQQnfKzkySDaoko/TEhIV8Qok+RSpZA5+7iA4CIcESjzeyWv2W/D7sSzrVVPLHnOzEb+b3PkoqVpIZ2RCeHYC0I2xI31WqByRWhCpUKiIn8Ooz
@saamerm
saamerm / SwiftUICoreMotionView.swift
Last active December 22, 2023 07:38
Sample using CoreMotion and SwiftUI to help understand how to use CMMotionManager and CoreMotion to get values of gravity, user acceleration, heading (2), attitude (pitch, roll, yaw), magnetic field
// Sample using CoreMotion and SwiftUI to help understand how to use CMMotionManager and CoreMotion to get values of gravity, user acceleration, heading (2), attitude (pitch, roll, yaw), magnetic field
// based on this beautiful example https://github.com/gsachin/DynamicFontRandD/blob/e4f7cc611d1d23573b4026bcc291bee60bf60e91/FontTextStrok/WaveView.swift
// that uses BAFluidView https://github.com/antiguab/BAFluidView
import SwiftUI
import CoreMotion
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
struct WaveView: View {
var motionManager = CMMotionManager()
@saamerm
saamerm / BackgroundNoiseAlert.swift
Created February 6, 2022 20:16
SwiftUI code to record audio from the user's mic and in real-time alert the user if there is a loud noise
//
// BackgroundNoiseAlert.swift
//
// Created by Saamer Mansoor on 2/2/22.
//
import AVFoundation
import UserNotifications
import SwiftUI
@saamerm
saamerm / ContentView.swift
Created December 9, 2021 07:16
The simplest way possible to make an async call using SwiftUI, using the ChuckNorris ICNDB API as an example
import Foundation
import SwiftUI
struct ContentView: View {
@State private var joke: String = ""
var body: some View {
Text(joke)
Button {
Task {
let (data, _) = try await URLSession.shared.data(from: URL(string:"https://api.chucknorris.io/jokes/random")!)
let decodedResponse = try? JSONDecoder().decode(Joke.self, from: data)
@saamerm
saamerm / JokeService.swift
Created December 1, 2021 10:38
Simplest way to make an API call in Swift
import Foundation
private actor JokeServiceStore {
func load() async throws -> String {
let (data, _) = try await URLSession.shared.data(from: URL(string:"https://api.chucknorris.io/jokes/random")!)
let decodedResponse = try? JSONDecoder().decode(Joke.self, from: data)
return decodedResponse?.value ?? ""
}
}
class JokeService: ObservableObject {
### Steps to perform migration of MvvmCross using PCL
(primarily done is Visual Studio for Mac)
This tutorial migrates
- PCL .Net solution to .NetStandard,
- MvvmCross 5 solution to MvvmCross 7.1,
- Android to AndroidX
#### The beginning
1. Create a new repository, with a Migration suffix
2. Inside it, create a New Blank Native Xamarin Template