Przy niedzielnym
obiedzie pochwaliłem się, że rozpocząłem naukę tworzenia
aplikacji na telefony. I od razu zostałem zasypany pomysłami takich
aplikacji. Jeden pomysł mi się spodobał bo był w miarę
konkretny.
Aplikacja do obliczania wagi materiału usypanego przez podajnik w żwirowni
Brzmi skomplikowanie? Opisze pokrótce kontekst. Mamy żwirownie,
która wydobywa materiały w postaci żwiru i piasku. Często pojawia
się potrzeba oszacowania wagi materiału zgromadzonego na hałdzie w
kształcie stożka. Otrzymujemy tutaj trzy dane wejściowe: obwód
hałdy, wysokość i rodzaj materiału.
Proste obliczenia. Aplikacja również. Wystarczy, że będzie składać się z dwóch pól do podania wartości numerycznej i listy do wyboru materiału.
Wiedza zdobyta podczas tworzenia aplikacji ToDo, jest wystarczająca aby wykonać tego typu prostą aplikację przy pomocy frameworka Ionic i AngularJs. Aplikacja została nazwana roboczo BingCalc. Bing – z angielskiego hałda, a Calc chyba nie muszę nikomu tłumaczyć.
Proste obliczenia. Aplikacja również. Wystarczy, że będzie składać się z dwóch pól do podania wartości numerycznej i listy do wyboru materiału.
Wiedza zdobyta podczas tworzenia aplikacji ToDo, jest wystarczająca aby wykonać tego typu prostą aplikację przy pomocy frameworka Ionic i AngularJs. Aplikacja została nazwana roboczo BingCalc. Bing – z angielskiego hałda, a Calc chyba nie muszę nikomu tłumaczyć.
Do dzieła
Pierwszym krokiem jest stworzenie projektu. W tym celu w katalogu z naszą aplikacją wywołujemy komendęionic start BingCalc blank
Tworzy to standardowy pusty projekt z nagłówkiem, który od razu został przeze mnie zmieniony.
Wywołujemy komendę
ionic serve
Uruchomi się przeglądarka z podglądem naszej aplikacji.
Dalsze budowanie wyglądu aplikacji to wklejanie kodów z
przykładów użycia komponentów CSS na stronie Ionic'a.
Pierwszy komponent to Card.
Umieszczamy kod przykładu w tagi <ion-content>
Następnie zamiast przykładowego tekstu wstawiamy formularz. Ja wybrałem ten konkretny przykład: http://ionicframework.com/docs/components/#forms-stacked-labels
<form> <div class="list"> <label class="item item-input item-stacked-label"> <span class="input-label">Obwod</span> <input type="number" min="5" value="5"> </label> <label class="item item-input item-stacked-label"> <span class="input-label">Wysokosc</span> <input type="number" min="5" value="5"> </label> <label class="item item-input item-select item-stacked-label"> <span class="input-label">Material</span> <select> <option value=""> -- Wybierz -- </option> </select> </label> </div> <div> <button type="submit" class="button button-block button-positive">Licz</button> </button> </div> </form>
W tym celu używamy atrybutów udostępnianych przez framework AngularJS do obsługi formularzy.
Odpowiednio modyfikujemy tagi FORM, INPUT oraz SELECT tak aby wykonywały pewne akcje i przyjmowały konkretne wartości.
<form ng-submit="calculate(input)"> <!-- funkcja calculate() zostanie wywołana po zatwierdzeniu formularza --> <input type="number" ng-model="input.ambit" min="5" value="5"> <!-- pole przyjmie wartość atrybutu input.ambit --> <input type="number" ng-model="input.hight" min="5" value="5"> <!-- lista przyjmie wartość konkretnego atrybutu i wyświetli opcje zawarte w tablicy materials --> <select ng-model="input.material"> <option ng-repeat="material in materials" value="{{material.code}}"> {{material.name}} </option> </select>
I otrzymujemy taki wygląd aplikacji
Po takim zmodyfikowaniu formularza przystępujemy do stworzenia back-endu aplikacji.
Jednak wcześniej modyfikujemy tag BODY
<body ng-app="calc" ng-controller="MainCtrl">
Zmieniając identyfikator aplikacji oraz kontroler odpowiedzialny za dany obszar strony.
Następnie w pliku js/app.js modyfikujemy linię
angular.module('calc', ['ionic'])
oraz dodajemy pod nią nasz kontroler
.controller('MainCtrl', function($scope, $timeout) {})
W ciele funkcji kontrolera dodajemy zmienną przechowującą materiały wyświetlanie w wybieralnej liście
$scope.materials = [{ code: "gravel", name: "Zwir" }, { code: "sand", name: "Piasek" }];W tym momencie powinny się one pojawić na liście.
Kolejno wartości domyślne dla formularza
$scope.input = { ambit: 5, hight: 5, material: "gravel" };
Obiekt zawierający dane na temat przelicznika metrów sześciennych na kilogramy danego materiału
$scope.units = { gravel: 1700, sand: 1520 };
Oraz funkcję przetwarzającą podane przez nas dane
$scope.calculate = function(input) { console.log(input); var r = input.ambit / (2 * Math.PI); var baseField = 2 * Math.PI * r * r; var bulk = (1 / 3) * baseField * input.hight; var result = bulk * $scope.units[input.material]; result = result / 1000; result = result.toFixed(1); alert(result + "t"); };
Po tych zabiegach powinniśmy uzyskać działającą aplikację.
Aby stworzyć z niej plik .apk wywołujemy kolejno komendy
ionic platform add android
ionic build android –-release
Nasz plik .apk powinien znajdować się w katalogu platforms/android/output/build/
Efekt końcowy
Czas pracy: 2h
Mina brata: Bezcenna
Brak komentarzy:
Prześlij komentarz