Slide 1

Slide 1 text

Introdução ao

Slide 2

Slide 2 text

Joel Wallis Jucá Cearense, 27, Webdev /joelwallis1 $ whoami

Slide 3

Slide 3 text

1. O que é 2. Arquitetura 3. Interfaces 4. Regras de negócio 5. Comentários e Q&A roadmap

Slide 4

Slide 4 text

http? html? apps? ● HTTP inicialmente desenhado para documentos estáticos ● Aplicações Web? Um parto. =( ● MVVM & programação declarativa FTW!!!11

Slide 5

Slide 5 text

● Framework open source, by Google ● Desenvolvimento de SPAs (single page applications) ● HTML para marcação de documentos dinâmicos (WAT?) dafuk is angular?

Slide 6

Slide 6 text

● Modules ○ Controllers ○ Directives ○ Providers (services, factories, etc.) ○ Filters, etc. architecture

Slide 7

Slide 7 text

● Modules ○ Controllers ○ Directives ○ Providers (services, factories, etc.) ○ Filters, etc. architecture

Slide 8

Slide 8 text

Interface ● Modules ○ Controllers ○ Directives ○ Providers (services, factories, etc.) ○ Filters, etc. architecture

Slide 9

Slide 9 text

● Modules ○ Controllers ○ Directives ○ Providers (services, factories, etc.) ○ Filters, etc. architecture Interface Regras de negócio

Slide 10

Slide 10 text

first things first: modules! // Creates a new module angular.module(‘myApp’, []); // Loads an existing module var myApp = angular.module(‘myApp’); ● Containers. Apenas. ● Declaram dependência em outros módulos

Slide 11

Slide 11 text

interfaces? templates! ● Código HTML com: ■ Tags e atributos personalizadas (tipo XML, #sqn) ■ Expressões - Ex.: {{first_name}}

Slide 12

Slide 12 text

// Custom tags and attributes

Welcome, bud!

interfaces? templates! ● Código HTML com: ■ Tags e atributos personalizadas (tipo XML, #sqn) ■ Expressões - Ex.: {{first_name}}

Slide 13

Slide 13 text

// Custom tags and attributes

Welcome, bud!

// Expressions!

Welcome, {{user_name}}!

interfaces? templates! ● Código HTML com: ■ Tags e atributos personalizadas (tipo XML, #sqn) ■ Expressões - Ex.: {{first_name}}

Slide 14

Slide 14 text

controllers // file: example-controller.js var myApp = angular(‘myApp’); myApp.controller(‘Example’, Example); function Example($scope) { $scope.is_welcome = true; $scope.user_name = “Joel Wallis”; }

Slide 15

Slide 15 text

templates (or just views)

Welcome, {{user_name}}.

Slide 16

Slide 16 text

two-way data binding! // file: example-controller.js var myApp = angular(‘myApp’); myApp.controller(‘Example’, Example); function Example($scope) { $scope.is_welcome = true; $scope.user_name = “Joel Wallis”; }

Welcome, {{user_name}}.

Slide 17

Slide 17 text

providers // file: user-factory.js var myApp = angular(‘myApp’); myApp.factory(‘UserFactory’, UserFactory); function UserFactory($scope) { return { load: function(id) { var userObj; // do magic and populates the userObj return userObj; } }; }

Slide 18

Slide 18 text

controllers // file: user-profile-controller.js var myApp = angular(‘myApp’); myApp.factory(‘UserProfile, UserProfile); function UserProfile($scope, UserFactory) { var userObj = UserFactory.load(1); $scope.user = userObj; }

Slide 19

Slide 19 text

dependency injection! // file: user-factory.js var myApp = angular(‘myApp’); myApp.factory(‘UserFactory’, UserFactory); function UserFactory($scope) { return { load: function(id) { var userObj; // do magic and populates the userObj return userObj; } }; } // file: user-profile-controller.js var myApp = angular(‘myApp’); myApp.factory(‘UserProfile, UserProfile); function UserProfile($scope, UserFactory) { var userObj = UserFactory.load(1); $scope.user = userObj; }

Slide 20

Slide 20 text

questions? don’t be shy :)

Slide 21

Slide 21 text

Feedback? Discussions? /joelwallis1 thank you!