Categorias
JavaScript

Web Share api

Web Share API permite o usuário compartilhar conteúdo através do card de compartilhamento nativo do sistema operacional em que está sendo executado, nos dispositivos Android esse suporte surgiu na versão 61 do Chrome em 2017, já para para iOS o suporte foi incluído no Safari em 2019 na versão 12.2 do iOS.

Para fazer a chamada no card nativo de compartilhamento chamamos a função navigator.share() em nosso browser, esse método faz parte da Web Share API, ele dá o controle ao usuário de como ele quer compartilhar esse conteúdo. Seu uso é baseado em Promise, o método aceito um objeto com as informações de título, texto de descrição e url como podemos ver no código abaixo:

if (navigator.share) { navigator.share({ title: 'Blog Fellyph Cintra', text: 'Como compartilhar conteúdo com web share API', url: 'https://blog.fellyph.com.br/', }) .then(() => console.log('Compartilhamento realizado com sucesso')) .catch((error) => console.log('Erro no compartilhamento', error)); }
Code language: JavaScript (javascript)

No exemplo acima, inicialmente utilizamos uma condicional para verificar se o suporte a web share api existe, caso positivo definimos o conteúdo que será compartilhado e adicionamos um then para tomar uma ação caso o compartilhamento seja realizado com sucesso ou catch em caso de error.

Requisitos

Para invocar o card nativos precisamos de alguns requisitos:

  • A URL deve ser servida por HTTPS
  • O método share deve ser invocado por uma resposta do usuário, por exemplo, um evento de click. Você não pode chamar a share API em um evento de page load.
  • Você só pode compartilhar uma URL dentro do escopo da aplicação
  • Sempre verifique se o usuário tem suporte a essa feature antes de chamar o método

Resultado

No lado esquerdo temos o resultado no iOS e a versao Android no lado direito

Na imagem acima temos dois exemplos de como o card de compartilhamento será exibido no Android e iOS. Para a plataforma iOS o recurso está disponível para Chrome e Safari. Vamos finalizamos por aqui caso tenha alguma dúvida só deixar um comentário.

Categorias
Vagas

Vagas Front-end em SP junho – 2017

1 – Desenvolvedor .Front-end Pleno e Sênior – Bela Vista)

Local de Trabalho: Bela Vista
Horário: De segunda a sexta-feira 09h00 até 18h00
Regime de contratação: PJ – Projeto Indeterminado
Tempo de projeto: Indeterminado
Requisitos: Sólidos conhecimentos em AngularJS, NodeJS e com experiência em desenvolvimento de softwares com interfaces complexas, não apenas interações com aplicações e web, trabalhar com SASS e GIT.

2 – Desenvolvedor Front-end Sênior

Local de Trabalho: Morumbi
Horário: De segunda a sexta-feira
Regime de contratação: PJ – Projeto Indeterminado
Tempo de projeto: Indeterminado
Requisitos: Conhecimento avançado de conceitos de aplicações responsivas, arquitetura de componentes em CSS; Noções de UX para definir padrões para sistemas web internos e externos; Dominar tecnologias da web (HTML5 + CSS3); Desejável conhecimento em semântica, usabilidade e acessibilidade, Experiência com desenvolvimento de aplicações WEB de Front end, Exemplos de outras tecnologias necessárias: JavaScript, jQuery, Ajax, Bootstrap, Angular, HTML5, CSS3, Photoshop, Illustrator, Design Mobile; Conhecimento em controle de versão SVN e/ou Git; Facilidade para aprender novas tecnologias.

3 – Desenvolvedor Front-end Sênior

Local de Trabalho: Pinheiros
Horário: De segunda a sexta-feira
Regime de contratação: CLT + Vale refeição ou Alimentação, Seguro de Vida Sulamerica, Vale Transporte, Seguro Saude Sulamerica – para funcionarios não tem desconto, caso inclua algum dependente arca com o valor integral dos mesmos.
Tempo de projeto: Indeterminado
Requisitos: Conhecimento avançado de conceitos de aplicações responsivas, arquitetura de componentes em CSS; Noções de UX para definir padrões para sistemas web internos e externos; Dominar tecnologias da web (HTML5 + CSS3); Desejável conhecimento em semântica, usabilidade e acessibilidade, Experiência com desenvolvimento de aplicações WEB de Front end, Exemplos de outras tecnologias necessárias: JavaScript, jQuery, Ajax, Bootstrap, Angular, HTML5, CSS3, Photoshop, Illustrator, Design Mobile; Conhecimento em controle de versão SVN e/ou Git; Facilidade para aprender novas tecnologias.

4 – Desenvolvedor Front-end Sênior

Local de Trabalho: Faria Lima
Horário: De Segunda a Sexta-feira
Regime de Contratação: PJ – indeterminado
Requisitos: Experiência em desenvolvimento de aplicações web utilizando JavaScript e jQuery. Experiência na criação de páginas responsivas, web e mobile. CSS Avançado e CSS3 Experiência em suporte a browsers antigos (graceful degradation), Conhecimentos de Regex Domínio de protocolo (HTTP, HTTPS, cross domain).

5 – Desenvolvedor Front-end Sênior

Local de Trabalho: Campo Belo
Horário: De Segunda a Sexta-feira
Regime de Contratação: PJ – indeterminado
Requisitos:  Experiência com CSS, HTML e Javascript, – CSS, HTML, JavaScript, Jquery e AJAX.
Trabalho em Equipe e vontade de compartilhar conhecimento entre integrantes da Equipe é fundamental.
Analisar e discutir junto ao arquiteto de informação sobre as demandas para desenvolvimento.
Participar de reuniões no cliente, junto ao gestor e equipe técnica, quando necessário.

6 – Desenvolvedor Front-end Sênior

Local de Trabalho: Alphaville
Horário: De Segunda a Sexta-feira
Regime de Contratação: PJ – Indeterminado
Requisitos: Sólidos conhecimentos em HTML, Css, Javascript e frameworks de mercado (jquery, angular).
Preferencialmente HTML 5, Angular 2,Typescript,Angular.

7 – Desenvolvedor Front-end Sênior

Local de Trabalho: Alphaville
Horário: De Segunda a Sexta-feira
Regime de Contratação: PJ – Indeterminado
Requisitos: Conhecimento avançado em Node.js, javascript, HTML, CSS.
EXPERIENCIA COMPROVADA EM MAGENTO, Conhecimento básico em alguma linguagem de programação (Java, .Net, PHP, etc).

8 – Desenvolvedor Front-end Sênior

Local de Trabalho: Alphaville
Horário: De Segunda a Sexta-feira
Regime de Contratação: PJ – Indeterminado
Requisitos: Conhecimento intermediário ou avançado em HTML, CSS, Node.JS javascript; Conhecimento básico em alguma linguagem de programação (java, .net, php, etc).

Interessados, por favor, sinalizar a numeração da oportunidade, encaminhar CV com pretensão salarial para : heloisa.moraes[a]5a.com.br

Categorias
Geral

Um mês de Dublin

E lá se vão 30 dias após minha chegada em Dublin, tempo passa muito rápido e ao mesmo tempo devagar. Rápido parece que pouca coisa andou por aqui e devagar parece que faz muito tempo que não vejo os meus amigos. Vou pontuar algumas coisas sobre a cidade e a rotina em Dublin. Primeira mês foi bem movimentado: primeira visão sobre a cidade, criando uma rotina, Saint Patrick’s Day, procurando apartamento, tentando abrir conta no banco, inglês e Brasileiros.

Primeira impressões

Dublin é uma ótima cidade com um clima bem louco. Eu achava que São Paulo era louco, mas aqui é bem mais. Aqui é possível fazer sol, chover e nevar ao mesmo dia. A cidade é pequena, comparada a São Paulo. Por exemplo: nos primeiros 15 dias fiz todos os meus compromissos andando. A cidade é plana, assim fica fácil de andar nas primeiras semanas ficava na região norte a 3.5km da minha escola ia andando todos os dias (tive sorte de não chover nesse período). Sobre a culinária, ainda não tive tempo de desfrutar. De volta a vida de estudante, estou fazendo todas as refeições em casa. Mas olhando os preços nos restaurantes, vão de 5 a 20 euros dependendo do lugar, sempre olho os preços e penso com 20 euros posso fazer 6 refeições boas refeições em casa, sem precisar comer porcaria.

Saint Patrick’s Day

É o principal evento, a cidade para fica cheia de turistas e boa parte da população vai ver a Parada que acontece pelas ruas da cidade. As escolas, universidades, polícia, bombeiro e todos os grupos possíveis, desfilam pelas cidades. O desfile vai até o final da tarde e após a parada, todos vão para os pubs beber – foi minha primeira experiência com pubs na Irlanda sai com um grupo de amigos Brasileiros eles decidiram ir na Living Room fica em Dublin 1, muito rock e cerveja.

A parte mais engraçada quando começava uma corrida de cavalo no telão a música parava e todos olhavam aficionados para o telão, dai descobri o primeiro costumo do Irlandês: eles adoram apostar. Depois dessa experiência, sai para andar na região do Temple Bar. Muitos jovens bêbados, o que no começo é engraçado, mas depois fica tudo a mesma coisa e perde a graça quando está sóbrio.

Quando decidi vir para Irlanda meus amigos falaram cara você precisa ir na semana antes do Saint Patrick’s Day e realmente é uma experiência única. Foi legal ver toda a festa, mas existe o outro lado: por ser uma cidade pequena, durante esse período é a pior época para se encontrar apartamento. Mas por que?  Além dos turistas que visitam a cidade, os intercambistas tem 8 meses de visto então ou eles tentam voltar depois do Saint Patrick’s ou chegar antes.

Isso cria uma bolha imobiliária de duas semanas vou falar um pouco na sequência.

Procurando apartamento

Na primeira semana até fiquei um pouco apreensivo em achar um apartamento, todos os anúncios que encontrei tinham um preço acima do que estava pesquisando meses antes, todas as visitas em apartamentos quando chegava no local tinham fila de interessados, as vezes parecia seleção de emprego em multinacional. E não é um problema só para estrangeiros como um vídeo do Foil Arms ang Hog brinca:

Depois muita procura, eu encontrei o apartamento!  Acompanhando os grupos com duas semanas depois as coisas “normalizaram”.

Mas claro tem um lado bom aqui não tem todo aquela questão de fiador ou seguro fiança comparado ao Brasil, você apenas precisa de um depósito de segurança e contrato de um ano ou 6 meses, devido a alta procura é super difícil de encontrar contratos de 6 meses atualmente.

Algumas dicas:

  • Venha dois mês antes do Saint Patrick’s ou um mês depois.
  • Inverno pode ser uma época mais fácil para achar apê, mas pode ser uma época mais difícil para adaptação se você não está acostumado com frio.
  • Pesquise nos grupos de “Classificados Dublin Imóveis” e “The Ideal Flatmate Dublin” no Facebook ou Daft.ie.
  • Tenha paciência porque essa será uma decisão que terá um grande impacto em sua viagem.

Abrindo conta no banco

Nossa pra mim está sendo o maior problema até agora, como funciona isso: 

  1. Você chega na Irlanda para estudar
  2. Para tirar o visto você precisa comprovar que tem os $3.000 euros
  3. Cada escola tem parceria com um banco para abri conta para estudantes, ela faz uma carta comprovando seu endereço
  4. Você leva a carta no banco e abre a conta
  5. Com a conta e os três mil euros você tira o visto e garante a permanência por 8 meses e consegue trabalhar 20h semanais.

Mas o banco que tem parceria o AIB com a escola ATC passou a não aceita a carta da escola, ou seja, você não consegue fazer nada. Estou a um mês esperando uma solução da escola + banco. Se uma conta no banco além de não tirar o visto e só ter permissão de passar 3 meses aqui, não posso ter um celular de conta, contratar internet para meu apartamento, muitos estabelecimentos só aceitam pagamento em débito em conta. O governo tentando resolver o problema mudou as regras a duas semanas atrás, mas a burocracia é tenta que escola e banco não chegaram a uma solução, não vejo o esforço da escola em resolver e o banco quer ditar suas regras. Tenho vários eventos marcados e amigos para visitar a instrução da imigração é que eu aguarde a resolução desse problema antes de sair do país. Sei que pessoas estão viajando sem visto mas não quero correr esse risco.  Agora é paciência e aguardar, o vídeo abaixo fala um pouco sobre o problema dos AIB especificamente.

Inglês e Português

Estou a um mês aqui juntando as horas que falei português é quase a mesma que falei inglês. Ainda não tive uma imersão no idioma na região central e nas escolas os brasileiros dominam. Inicialmente tentei alugar apartamentos com gringos, mas o problema da semana do Saint Patrick’s poderia escolher muito e a localização do apartamento foi decisivo na escolha estou a 10 min da escola.

Falando em escola a ATC, prometia um mix de nacionalidade um dos fatores que decidir estudar na escola, chegando lá apenas 90% da sala são brasileiros e todos foram em busca do mesmo diferencial. Um problema bem grave que você precisa decidir 8 meses da sua vida sem conhecer a escola. Quando chega na escola você tem duas opções: ou aceitar, ou pagar mais mil euros para solucionar o problema mudando de turno. O problema que com esse valor eu entraria numa escola melhor que escolhi, ou economizaria mais optado por uma mais barata que apresentava as mesmas atividades extras. Infelizmente se a escola promete um mix de nacionalidade não acredite, primeiro a escola não pode barrar um estudante por nacionalidade, se entrarem 8 estudantes brasileiros no mesmo nível na mesma época a escola tem que aceitar.

Outro ponto importante escola bem sua agência de viagens; muitas tentam resolver o problema se você não está satisfeito com a escola ou algo do tipo, a exemplo da minha, só tenho respostas prontas que a mais de um mês não ajudaram em nada. Boa parte das coisas estou resolvendo sozinho, então, o papel da agência(Global Study) nesse momento é zero. Por isso, procure saber mais sobre sua escola e até se ela tem escritório na cidade, pois isso também pode ajudar.

Mas esse problema do idioma estou resolvendo participando dos meetups e eventos, sempre o inglês é predominante e nos meetups de DEV você irá escutar todos os sotaques. Se você é da área de front-end alguns grupos legais que participo:

Meetup AWS User Group

Node.JS Dublin User Group

Categorias
Mobile Tutoriais Web

Crie aplicações na nuvem com Parse

No ano passado tive oportunidade de conferir o Parse Developer Day em San Francisco, foi o primeiro e um dos melhores eventos que conferir lá na capital da tecnologia. O Parse para que não conhecer é um serviço de cloud para aplicações e games mobile. Ele tem suporte a IOS , Android, Windows Phone, Unity e JavaScript.

Dentre os serviços que o Parse oferece, temos:

  • Cloud Storage
  • Push Notification
  • Social Connection
  • Hosting
  • Analytics
  • Cloud Code

Neste tutorial vou dar uma introdução sobre o serviço de Cloud Storage com JavaScript esse recurso possibilita salvarmos informações em um server sem precisar de uma linguagem Back-end, também podemos utilizar o JavaScript SDK junto com Phonegap e exporta-ló para diversas plataformas. O JavaScript SDK é baseado no framework BackBone.js: Isso possibilita total compatibilidade com aplicações que usar tal framework. O JavaScript SDK não possui dependência por outras libs, você pode trabalhar com Parser + JS e mais nada, mas claro que você pode utilizar outras libs. Durante o tutorial eu vou falando sobre mais recursos. Agora vamos aos passos iniciais.

Primeiro passo é realizar o cadastro no site do Parse: https://parse.com/. Não se preocupe com questões de preço eles fornecem um pacote free bem “parrudo”. O plano free tem 1 milhão de requisições/mês e 1 milhão de Pushes Notifications/mês. Se sua aplicação realiza mais de um 1 milhão de requisições mês já está na hora de ganhar algo com seu app ou repensar no esquema de requisições que ele realiza.

Você pode criar uma conta passando os dados convencionais ou vincular sua conta a uma conta do Facebook/GitHub . Com sua conta devidamente criada ele vai liberar para você um painel para você administrar suas aplicações.

Crie sua aplicação clicando no botão “+ Create New App”, só adicionar o nome do seu app:

E você já tem uma aplicação na nuvem!

Agora vamos fazer um pequeno exemplo para ler e gravar informações na nuvem. Precisamos realizar o download do JavaScript SDK:

https://parse.com/downloads/javascript/parse-js-blank/latest

Ou utilizar o link da CDN :

  

Com o Parse devidamente importado temos vamos ao código de nossa aplicação:



    
        
        
        
        Hello World Parse
    
    
        

App com Parse

No código acima temos um markup simples em HTML, no final de nosso código temos a parte que interessa que é o nosso código JavaScript. após chamar o Parse via CDN no segundo bloco de código JavaScript inicializamos o Parse com a função “Parse.initialize(“APPLICATION_ID”,”JAVASCRIPT_KEY”)” esse dois parâmetros você deve substituir pelo application ID e o JavaScript Key de sua aplicação, você vai descobrir essa informação no settings de sua aplicação, na imagem abaixo temos marcados o application id e o JavaScript Key.

Copie as duas infos e substitua em sua inicialização. Na linha seguinte criamos um objeto da classe “MyObject” ela estende do Parse.Object, ele é responsável por toda regra de armazenamento de dados. Quando chamamos a função extend o Parse irá verificar em sua base se existe a classe MyObject, caso não exista ele irá criar uma nova base de dados com a classe. Também não é necessário definir o esquema padrão para armazenamento previamente, as propriedades do elemento podem mudar, não é uma ação recomendável, mas você pode adicionar uma propriedade nova em sua classe sem precisar criar uma nova classe.

Nesse ponto eles simplificaram ao máximo, você chega a não acreditar como isso funciona. Na linha 18 ele cria uma nova instancia(test) da Classe MyObject e por fim na linha 20 ele salva essa instancia passando um objeto com as informações que serão salvas nesse momento temos um códido “like jQuery” temos mais uma função atrelada a then ela será disparada caso os dados seja gravados com sucesso, essa função também recebe um objeto no callback se inspecionarmos esse objeto teremos os seguintes valores:

Como podemos ver na imagem acima recebemos um objeto com uma série de informações que foram gravadas em sua aplicação, algumas informações úteis como o ID do objeto esse atributo é um identificador único do objeto na aplicação, também podemos verificar os atributos do objeto salvo.

Se testarmos nossa aplicação e ela retornar um alert significa que as informações foram salvas. Para verificar isso basta acessar o painel database no dashboard de sua aplicação como na imagem a seguir:

Como podemos ver a informação está salva na nuvem, agora vamos para algo mais prático no próximo exemplo eu vou montar um cadastro de TODO-LIST. O código vai ficar um pouco extenso por isso vou separar o código em dois(HTML/CSS), primeiro vamos ver o nosso HTML:



    
        
        
        
        Hello World Parse
        
    
    
        

App com Parse - TODO LIST

    Carregando...


Em seguida o nosso JavaScript, comentei algumas linhas mas também vou comentar a seguir.

  		Parse.initialize("APPLICATION_ID","JAVASCRIPT_KEY")
        	var Tasks;
        	var listOfTasks;
        	var inputTask;
        	
        	//função para inicializar nosso app
        	function initApp(){
        		Tasks = Parse.Object.extend("Tasks");
        		//showTasks busca tarefas já cadastradas em nosso app
        		showTasks();
        		//Adicionamos um lister para o nosso form
        		document.getElementById("form-task").addEventListener("submit",onSubmit);
        		
        		//Fazemos um cache dos itens que acessamos mais de uma vez em nosso app
        		listOfTasks = document.getElementById("list-tasks");
        		inputTask = document.getElementById("tarefa")
        	}
        	
        	//função resposável por consultar os dados na nuvem
        	function showTasks(){
        		//chamamos a função Query do Parse parar varer a nossa base
        		var query = new Parse.Query("Tasks");
        		
        		//a função trata a query para sucesso ou erro de nossa consulta
        		query.find({
        		success:function(results){
        			//esse bloco será executado se ocorrer tudo bem com nossa query
        			var markupList = "";
        			//os resultados vem em um array de objetos
        			//varremos o nosso array e montamos um markup
        			for(var id in results){
        				console.log("success",results[id].attributes.descricao);
        				markupList += "
  • "+ results[id].attributes.descricao +"
  • " } listOfTasks.innerHTML = markupList; }, error:function(error){ //tratamento para caso de erro console.log("error",error) } }) console.log(query); } //função para fazer o trantamento quando o usuário envia os dados do form function onSubmit(e){ var task = {}; //pegamos o valor cadastrado em nosso input task.descricao = inputTask.value; task.done = "false"; //passamos o nosso objeto para ser salvo na cloud saveTask(task); // utiliza o preventDefault para evitar do form realizar o reload da página e.preventDefault(); } //função específica para salvar as tasks na nuvem function saveTask(task){ var taskCloud = new Tasks(); taskCloud.save(task).then(function(object) { alert("Task salva com sucesso!"); showTasks(); inputTask.value = ""; }); } window.addEventListener("load", initApp)

    Nas primeiras linhas inicializamos o Parse, em seguida criamos algumas variáveis para armazenar alguns itens importantes em nosso app. A função initApp será disparada por um listener para quando nossa página for totalmente carregada. Continuando na função initApp inicializamos nossa Class Tasks. Na linha 11 chamamos a função showTasks ela será responsável por exibir nossas tasks. Nas últimas 3 linhas adicionamos um listener para nosso form, guardamos o container das tasks a ul com id list-tasks e o input que iremos digitar nossas tasks.

    Na Função “showTasks” temos um item novo, para realizamos uma consulta em nossa base utilizamos a Classe Parse.Query(“Tasks”), armazenamos ela na variável “query” com a função find pedimos para resgatar a lista de valores cadastrados, também podemos atribuir callbacks para serem chamados em caso de sucesso ou erro. Em caso de sucesso recebemos um array de objetos, tratamos o array e o exibimos em nosso ul.

    A função “onSubmit” é disparada quando o usuário tenta salvar alguma informação, utilizei o submit para utilizar o recurso de required de nosso input, nesta função pegamos o dado cadastrado no input e passamos para função saveTask.

    A “saveTask” será responsável por salvar os dados na nuvem, não comentarei essa função porque já abordamos o assunto anteriormente sobre salvar objetos na nuvem.

    Até o momento nosso app só salva os itens agora vamos implementar um função de editar os itens, mas antes vamos adicionar um CSS para sinalizar nossos itens editados. vamos adicionar o seguinte CSS:

    .list-tasks{
    	list-style:none;
    	margin:0;
    	padding:0;
    }
    
    .item-task{
    	padding: 10px;
    	border-bottom: 1px solid #ccc;
    }
    
    .item-task[data-done="true"]{
    	text-decoration:line-through;
    }
    

    Detalhe para o código acima a regra aplicada para quando o elemento com class .item-task tiver sua propriedade setada para true ele receberá uma linha sobre o texto.

    Em nossa função initApp adicionamos o evento de click para lista com:

    listOfTasks.addEventListener("click",clickList);
    

    Adicionamos o tratamento no click:

    function clickList(e) {
    				if(e.target.localName == "li"){
    					e.target.dataset.done = (e.target.dataset.done === 'true')? false : true;
    					editTask(e.target.dataset.id,e.target.dataset.done);
    				}
    			}
    

    Atribui o click no “ul” pelo fato de não implementar o click em cada filho, observo o item pai e valido se o meu target foi o “li” e pego as informações contidas no elemento e passa para a função editTask o id do elemento e o novo valor da variável done. Agora vamos ao código da função editTask:

    function editTask(id,done){
    				var query = new Parse.Query(Tasks);
    				query.get(id, {
    				  success: function(task) {
    					 task.set("done", done);
    					 task.save()
    				  },
    				  error: function(object, error) {
    					console.log("erro ao salvar o objeto", object, error)
    				  }
    				});
    			}
    

    Na função editTask instanciamos uma nova query e realizamos uma busca pelo id da task com a função get, caso a função ache o item, executamos a função success modificamos a propriedade com a função set e salvamos novamente a nossa task. Esse esquema não possui nenhum esquema de tratamento para controle de requisições e em todo o clique iremos executar um nova requisição.

    Para finalizar vamos adicionar uma função para excluir a task, na função showTasks, em cada “li” vou adicionar um button com o id de cada item vou adicionar somente a linha modificada:

    markupList += "
  • "+ results[id].attributes.descricao +"
  • ";

    Agora vou adicionar na função clickList uma condicional para quando o usuário clicar no button:

     
    function clickList(e){
    	if(e.target.localName == "li"){
    		e.target.dataset.done = (e.target.dataset.done === 'true')? false : true;
    		editTask(e.target.dataset.id,e.target.dataset.done);
    	}else if(e.target.localName == "button"){
    		e.target.disabled = "disabled";
    		e.target.innerHTML = "Removendo..."
    		removeTask(e.target.dataset.id);
    	}
    }
    

    No código acima quando o usuário clicar no button eu passo o id da task para função removeTask que possui o seguinte código:

    function removeTask(id){
    	var query = new Parse.Query(app.Tasks);
    	query.get(id, {
    		success: function(task) {
    			task.destroy({
    				success:function(task){
    					app.showTasks();
    				}
    			})
    		}
    	});
    }
    

    Na função removeTask realizamos uma Query para resgatar o objeto pelo id, quando recebermos a task chamamos a função destroy como nome sugere ela é responsável por remover o dado.

    O objetivo desse tutorial era mostrar as funções básicas do Parse e entender o seu funcionamento, os dados estão abertos para todos os usuários, ou seja todo mundo que usasse esse app compartilharia a mesma lista de task. Nos próximos posts pretendo abordar questões de usuários, vincular os dados por usuário e criar seções. Coloque o código completo no gitHub para baixar o código basta acessar o link:

    https://github.com/fellyph/Tutorial-bbUI/tree/master/parse-tutorial/www

    Referência:
    https://parse.com/docs/js_guide#javascript_guide

    Segundo post da série:

    https://www.fellyph.com.br/blog/tutoriais/realizando-consultas-na-base-de-dados-parse/

    Categorias
    Eventos

    Os últimos Talks de 2013

    2013 foi um ano incrível, e no fechar das cortinas tive a chance de palestrar em dois grandes eventos. O WEBBR 2013 e EATI 2013 duas experiência incríveis, o primeiro eventos é um dos maiores eventos de Web do Brasil e o segundo um super evento no extremo sul do Brasil.

    Na segunda feira dia 18 de abril tive a oportunidade de falar sobre performance em apps HTML5, a palestra inicialmente seria apresentada por Demian Borba que generosamente emprestou o conteúdo de sua palestra. Nela listei 20 dicas sobre performance. Tive sorte de abrir a rodada de palestras, abrir evento é sempre bom que você fica com tempo livre para conferir todas as outras palestras. No  WEBBR 2013 possuía  4 trilhas e eu fui escalado na trilha canvas, após minha palestra  tirando a palestra da Talita Pagani eu fiquei mais tempo na trilha section.

    Após a minha palestra foi a vez de Talita Pagani subir no auditório. Com a palestra sobre games com HTML5, apresentação que abordou os principais assuntos sobre desenvolvimento de jogos em HTML5, na palestra a Talita falou de algumas questões que ela enfrenta no dia-a-dia. Após a palestra da Talita conferi ótimas palestras com Bruno Azevedo, Caio Gondim e Almir Filho. No WEBBR tive a oportunidade de conhecer o trabalho do Bruno e por sorte encontrar novamente no EATI e conhecer mais sobre esse grande profissional.

    O EATI evento organizado pelo o Joel da Silva, aconteceu na unidade da Universidade Federal de Santa Maria de Frederico Westphalen, posso falar que foi um dos eventos que fui mais bem acolhido em 2013. A cidade de Frederico Westphalen está situada entra Santa Cataria, Rio Grande do Sul e Argentina. Para chegar lá tive que enfrentar uma verdadeira Odseia, sai na noite do dia 19 de novembro de Guarulhos para  Chapecó, fazendo escala em Florianópolis, chegando em Floripa por questões climáticas tive que ir de ônibus até Frederico Westphalen uma viagem que durou 11 horas. Chegando lá fui direto para a UFSM onde tinha um workshop no período da tarde e a noite uma palestra.

    As fotos acima são do Workshop sobre desenvolvimento de Jogos em HTML5, logo após o workshop foi a vez da palestra para os Estudantes da UFSM

    Posso falar que foi sofrido mas valeu a pena a recepção dos professores e alunos foi incrível. No dia seguinte a minha palestra foi a vez do momento BrazilJS, Jaydson e companhia durante todo o dia deram uma série de palestras sobre Front End. Devidamente recuperado eu acompanhei todas as palestras no segundo dia. Algumas das palestras eu tinha visto dias antes no Webbr Conf mas valeu a pena ver de novo.

    2013 foi um ano incrível, aprendi bastante e conheci pessoas incríveis nas cidades onde passei, a batalha inicia novamente e que venha 2014! Um 2014 de muito sucesso para todos os leitores.