Skip to content

Instantly share code, notes, and snippets.

View nicowernli's full-sized avatar
🏠
Working from home

Nicolás Wernli nicowernli

🏠
Working from home
  • Málaga, Spain
  • 22:05 (UTC +02:00)
  • LinkedIn in/nwernli
View GitHub Profile
@nicowernli
nicowernli / base-url.interceptor.ts
Last active March 28, 2019 11:39
Simple HttpInterceptor that adds a header to a request
import { Injectable } from '@angular/core';
import {HttpHandler, HttpRequest, HttpInterceptor} from '@angular/common/http';
import {environment} from '../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class BaseURLInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler) {
if (!req.url.match(/^http(s)?:\/\/(.*)$/)) {
@nicowernli
nicowernli / http-error.interceptor.ts
Last active March 28, 2019 11:28
An error interceptor to manage all HTTP errors in a single way
import {Injectable} from '@angular/core';
import {HttpHandler, HttpRequest, HttpInterceptor} from '@angular/common/http';
import {throwError} from 'rxjs';
import {catchError} from 'rxjs/internal/operators';
import {ErrorService} from '../my-services/error.service';
@Injectable({
providedIn: 'root'
})
export class HttpErrorInterceptor implements HttpInterceptor {
@nicowernli
nicowernli / app.module.ts
Created March 28, 2019 11:36
Adds http interceptros to a module
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
import {AppComponent} from './app.component';
import {BaseURLInterceptor} from './services/base-url.interceptor';
import {HttpErrorInterceptor} from './services/http-error.interceptor';
@NgModule({
declarations: [ AppComponent ],
@nicowernli
nicowernli / app_config.dart
Created December 11, 2019 12:27
Flutter AppConfig for differente flavors
import 'package:flutter/material.dart';
import 'package:meta/meta.dart';
class AppConfig extends InheritedWidget {
AppConfig({
@required this.flavorName,
@required this.apiBaseUrl,
@required Widget child,
}) : super(child: child);
@nicowernli
nicowernli / main_development.dart
Last active December 11, 2019 13:08
main_development muestra la configuración de dev
import 'package:flutter/material.dart';
import 'app_config.dart';
import 'my_app.dart';
void main() {
runApp(AppConfig(
apiBaseUrl: 'https://development-api-base-url.com/',
flavorName: 'dev',
child: MyApp(flavor: 'dev'),
@nicowernli
nicowernli / main_integration.dart
Last active December 11, 2019 13:07
main_integration muestra la configuración para integration
import 'package:flutter/material.dart';
import 'app_config.dart';
import 'my_app.dart';
void main() {
runApp(AppConfig(
apiBaseUrl: 'https://integration-api-base-url.com',
flavorName: 'int',
child: MyApp(flavor: 'int'),
@nicowernli
nicowernli / stateless_widget.dart
Created December 12, 2019 14:22
Stateless Widget File Template
import 'package:flutter/material.dart';
class ${StringUtils.removeAndHump(${NAME})} extends StatelessWidget {
@override
Widget build(BuildContext context) {
return null;
}
}
@nicowernli
nicowernli / stateful_widget.dart
Created December 12, 2019 14:25
Stateful Widget File Template
#set ( $CAMEL_NAME = ${StringUtils.removeAndHump(${NAME})} )
import 'package:flutter/material.dart';
class ${CAMEL_NAME} extends StatefulWidget {
@override
_${CAMEL_NAME}State createState() => _${CAMEL_NAME}State();
}
class _${CAMEL_NAME}State extends State<${CAMEL_NAME}> {
@override
@nicowernli
nicowernli / build.gradle
Last active December 17, 2019 13:57
App Gradle android flavors
...
android {
...
flavorDimensions 'my-app'
productFlavors {
development {
dimension 'my-app'
applicationId 'com.my-app.development'
}
@nicowernli
nicowernli / strings.xml
Created December 17, 2019 14:02
Development Strings
<!-- android/app/src/development/res/values/strings.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My App - DEV</string>
</resources>