Giter Site home page Giter Site logo

app-ios's Introduction

App do MacMagazine para iOS

Build Status

O aplicativo do MacMagazine agora é um projeto de código aberto (open source), para que a enorme comunidade de desenvolvedores/leitores do site possa colaborar e construir um app cada vez melhor e mais completo.

Funcionalidades existentes

  • Posts com imagens dos artigos
  • Compartilhamento de posts
  • Favoritar posts
  • Podcasts, com compartilhamento e favoritar
  • Videos, com compartilhamento e favoritar
  • Buscas em Posts, Podcasts e Videos
  • Notificações push de todos os posts ou apenas de destaques
  • WKWebView para leitura dos artigos e visualização dos comentários
  • Modo Escuro
  • Fontes dinâmicas para melhor visualização
  • Leitura dos posts em fullscreen no iPad
  • App para watchOS
  • Widgets, tanto na Lock Screen como na Home screen

Bug Reporting e Feature request

Use as Issues para cadastrar problemas encontrados ou features desejadas.

Sobre esta versão

  • Totalmente escrita em Swift e usando SwiftUI
  • Design diferenciado por plataforma
  • Totalmente modular usando Swift Package Manager
  • Analytics usando Firebase

Instruções para colaboração

Optamos pela não utilização de Gerenciadores de Dependências, como Cocoapods ou Carthage, para permitir um melhor entendimento do projeto, além de servir como estudo de Swift. Porém se tiver uma biblioteca que realmente faça a diferença no projeto, use Swift Package Manager - ou nos escreva para discutirmos a melhor opção.

Tenha sempre seu Xcode e Swift atualizado na última versão e a versão de iOS suportada é 16+.

Antes de iniciar seu desenvolvimento, o código-fonte está disponível aqui mesmo neste repositório, na branch release/v5.

Instale o utitlitário swiftlint e observe o code style para manter o padrão no desenvolvimento.

Para cada bug/nova funcionalidade que for desenvolver, crie uma nova branch, no formato hotfix/[descricao] (no título, mencione o número do issue, usando hashtag (ex: branch: hotfix/Fix_91_TableView_bug e título: Correção #91 TableView bug)) ou feature/[descricao] para nova funcionalidade e utilize Pull Requests para enviar o código para aprovação do nosso time de revisores.

Bom desenvolvimento.

Equipe MM :-)

app-ios's People

Contributors

ailtonvivaz avatar brunoteixeiralc avatar cassio-rossi avatar cesarbars avatar fsaragoca avatar gabriellidenor avatar gustavogervasio avatar leoformaggio avatar leonardorock avatar leschlogl avatar mouradev avatar rfischmann avatar rodrigo-galba avatar themakew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-ios's Issues

Barrinha de erro de conexão aparecendo com muita frequência

A barrinha vermelha de erro de conexão tem aparecido com muita frequência aqui, creio que desnecessariamente. Meu palpite é que o app tenta às vezes se atualizar em plano de fundo, não consegue, e aí mesmo horas depois quando abro o app de novo está lá a barrinha no topo (assusta).

Crash ao tentar salvar imagens em posts

Relato de leitor:

Está acontecendo um fechamento inesperado no aplicativo MacMagazine, quando fui no post sobre o smartphone que o criador do Android está fazendo, fui tentar fazer download da imagem do aparelho segurando com dedo encima da imagem até aparecer a mensagem de salvar a imagem, mas quando faço isso o aplicativo da uma congelada e logo em seguida fecha sem salvar a imagem. iPhone 6 de 64GB, iOS 10.3.2

Confirmei aqui no meu.

Possibilidade de aumentar/reduzir o tamanho do texto

Leitores (especialmente os que têm problemas de visão) pedem que o app permita aumentar/diminuir o tamanho dos textos, quem sabe seguindo o ajuste geral do iOS relacionado a isso.

Não sei como isso seria possível, já que o app é simplesmente uma web view para posts (abre a versão mobile do nosso site), mas quem sabe role "chamando" uma folha de estilos à parte dentro do app que ajuste o tamanho da fonte.

A ideia está aí.

Datas sempre em português na lista de posts

Atualmente, à medida que vamos rolando a lista de posts na tela inicial do app, ele mostra as datas de dias anteriores a "ontem" no idioma definido pelo iOS.

Aqui, uma screenshot de quando o iOS está em inglês: http://d.pr/i/qyDt

Como o app é todo em português, o ideal é que ele force essas datas também sempre em português. É possível?

Retorno do recurso de favoritar posts

Este foi um recurso que achamos que poderia ser eliminado da nova e recém-lançada versão do app (a 3.0), e que existia até a anterior.

Tínhamos uma "estrelinha" na tela de leitura de posts antes que permitia aos usuários favoritar posts e acessá-los pelo menu lateral (layout antigo, estilo "hambúrguer") do app numa lista personalizada só de posts favoritos.

Tenho minhas dúvidas se isso ainda é algo válido de re-adicionarmos ao app, não temos métricas de uso do recurso nas versões anteriores e se não me engano, pela nova folha de compartilhamento, dá para mandar posts por exemplo para Pockets da vida (serviços de "read it later"). Mas já tiveram, sim, ao menos 1-2 usuários reclamando da ausência dele no novo app.

Corrigir texto explicativo sobre pushes

Ao abrir a área de ajustes do app, há um parágrafo de texto no fim.

Alterar "Pushes para todos os posts" para "Push para todos os posts", tal como é de fato a opção acima do parágrafo.

Se possível, remover também o espaçamento vazio que há entre "Ajustes do MacMagazine" e as opções em si (começando por "Licenças").

Notificações individuais por post?

Nos comentários deste post, um leitor levantou uma discussão sobre as notificações do app passarem a ser individuais.

Explico: ele quer poder abrir um post pelo push e só liberar aquele post específico do total do badge de notificações do app. Obviamente, para a pessoa limpar tudo ela ou teria que abrir artigo por artigo ou teria que ter algum botão/gesto para isso.

Pessoalmente eu não acho uma boa ideia (posts não são bem como emails, por exemplo), mas queria trazer aqui para discussão. Quem sabe poderia ser um comportamento opcional?

Error: couldn’t be opened because there is no such file

Fiz o processo igual que esta do GitHub, mas deu esse erro.
error: could not read data from '/Users/Daniel/Desenvolvimento/Swift iOS/MacMagazine-iOS/Pods/Target Support Files/HockeySDK/ResourceBundle-HockeySDKResources-Info.plist': The file “ResourceBundle-HockeySDKResources-Info.plist” couldn’t be opened because there is no such file.

captura de tela 2016-06-06 as 22 58 27 2

Implementar push notifications

  • Register for pushes
  • Deal push slide open
  • Clear badge count
  • Make sure that old system is inactive for upgraded accounts

TableViewCell Bug

Quando é clicada para abrir pela segunda vez, o evento não é registrado e o post não abre. Só abre pela primeira vez que o click ocorre.

Integração com o 3D Touch de iPhones 6s/6s Plus

O app "precisa" ter integração com o 3D Touch de iPhones 6s/6s Plus.

Não penso em muita utilidade para atalhos no ícone dele — se muito um link direto para o último post publicado, fora isso tenho minhas dúvidas.

Mas o que seria legal, mesmo, é poder dar Peek & Pop nos artigos diretamente pela tela inicial do app (na lista de posts).

Também criei outra issue (#52) sobre podermos tocar e segurar (tap & hold) na lista de posts para abrir a folha de compartilhamento.

Sistema de busca de posts

A ideia seria um campinho de busca no topo do app, ao puxar a tela para cima, que sirva para usuários encontrarem posts em todo o site.

O Luigi Freitas, que desenvolveu o nosso bot para o Telegram, me parece que está desenvolvendo uma espécie de API para o próprio bot ter o seu sistema de buscas. Se não me engano, ele está fazendo isso baseado na WordPress REST API, cujo plugin já está instalado e ativo no MacMagazine. Com isso concluído, segundo ele, daria para integrar o trabalho ao app.

Contador de notificações, "badge" não é zerado

  • O contador das notificações push badge é zerado quando o app é aberto, porém após isto, quando o app recebe uma nova notificação, esse contador não conta uma notificação no badge, mas sim um acúmulo de todas que já foram recebidas, por exemplo, no meu caso já contam 155.
  • Sou desenvolvedor iOS também, e acredito que esse problema está em quem faz o envio das notificações, que eu acredito não ser o app (não olhei os fontes) neste projeto. Deve ter algum problema no momento em que esse contador das notificações deveria ser zerado, antes de associar isto a uma push notification e enviar a mesma.

Espero ter ajudado 👍

Listas voltam ao topo quando mais artigos são solicitados no final

Bug: Listas voltam ao topo quando mais artigos são solicitados no final

Sumário

Após chegar ao final da lista de artigos, mais itens podem ser obtidos. Entretanto, ao continuar a rolar a tela para baixá-los, o app retorna a lista ao início. Além disso, o artigo carregado à direta no split view também é recarregado.

Passos a reproduzir

  1. Abrir o app;
  2. Selecionar qualquer artigo na lista à esquerda (pode já estar selecionado);
  3. Rolar a lista de artigos até o último item carregado;
  4. Aguardar o download dos próximos itens

Resultados esperados

Demais itens devem ser carregados e a posição atual do usuário deve ser mantida em tela, para que ele continue a navegar pela lista a partir dos itens carregados na sequência.

Resultados atuais

Ao continuar a rolar a tela para baixá-los, o app retorna a lista ao início. Além disso, o artigo carregado à direta no split view também é recarregado.

Evidência

Gravação em vídeo anexada.
Uploading Bug-App iOS versão 3.zip…

Versão do sistema operacional

iOS 10.3 Beta 7 - 14E5277a

Dispositivo

iPad Air 2

Notas adicionais

Sem maneiras de contornar o problema até o momento.

Atalho para a folha de compartilhamento pela tela inicial

Há outra issue cadastrada (#51) em que trato da integração do 3D Touch na tela inicial do app (lista de artigos), mas esta melhoria aqui seria diferente.

A ideia é, ao tocar e segurar (tap & hold) em posts na tela inicial, abrir diretamente a folha de compartilhamento — tal como se tivéssemos aberto o post e ido até o ícone de compartilhamento no canto superior direito da tela.

Simples, assim!

Evolução da interface para iPad

Em breve lançaremos a versão 3.1 do app, que inclui a implementação inicial de suporte a iPad da issue #48.

Como originalmente proposto, ela é bem básica e acho que podemos evoluir a partir daí. Ideias?

Recurso para ampliar imagens dentro de posts

Na versão desktop do nosso site, em muitos casos nós linkamos imagens às suas versões em resolução original e indicamos que o leitor pode clicar/tocar na imagem para ampliá-la.

Seria legal o app ter um visualizador nativo para imagens assim, que ao tocadas tomassem a tela inteira (com fundo preto) e permitissem ao usuário dar zoom à vontade.

Se possível, ficaria show se a imagem ampliasse com algum efeito/animação ao ser tocada.

Interface adaptada para iPads

Uma das coisas mais requisitadas desde a versão 1.0 do app: torná-lo universal, compatível também com iPads.

A priori não imagino algo muito complexo: a atual lista de posts ficaria numa coluna lateral à esquerda, com o post abrindo na direita — mais ou menos como o Mail trabalha com emails.

O layout do MacMagazine já é todo responsivo, então creio que os posts ficariam bem abrindo com mais espaço nessa interface adaptável.

Problema ao logar no Disqus via Facebook

Recebemos o relato de um leitor que não consegue se logar no Disqus para comentar usando a sua conta do Facebook: https://d.pr/i/17LoZ

Não chegamos a testar essa possibilidade antes de lançar a versão 3.0 do app, pois todos temos contas nativas no Disqus.

Definir estratégia de posts (Featured vs. All)

Antes do Release 2.0 precisamos definir qual será o padrão para registro de notificações.

A sugestão do @fsaragoca é do padrão ser featured. Estou de acordo.
O que penso é que devemos criar um settings do App como um iOS Settings Bundle nativo e dar fazer a gestão destas preferências por lá.

Pushes de novos posts duplicados

Temos relatos de alguns leitores que estão recebendo pushes duplicados de novos posts, mesmo depois de apagar e reinstalar o app por completo.

Se não me engano, todos estão com a opção de receber pushes para todos os posts ativada.

Modo escuro?

Mais de um leitor já pediu que o app incorpore um modo escuro, algo que se fala que poderá vir no iOS 10.

O "problema" é que, para isso ser possível, no mínimo o nosso site teria que ter um modo escuro também de forma a carregar a folha de estilos (CSS) correta pelo acesso mobile via app.

Integração com o nosso podcast

O app merece, futuramente, uma área dedicada ao nosso podcast.

O Jovem Nerd lançou um novo app recentemente que faz isso, talvez até de forma mais avançada/completa do que seria suficiente no nosso caso.

Todos os episódios do MacMagazine no Ar são publicados no SoundCloud, então imagino que deve haver por ele uma forma fácil de fazer essa integração.

Não tem som dentro da própria matéria

Copiado de um Review na AppStore:

Outro problema que eu já enfrentava no app antigo e continuo com o mesmo problema nessa versão, não consigo ouvir os podcasts naquele "widget" dentro da própria matéria(já que não tenho instalado o app do SoundCloud), eu toco em play, mas o som não sai, nem a barra de progresso do tempo de reprodução muda, enfim, não reproduz

Possibilidade de navegar entre posts sem voltar à tela inicial

Alguns leitores estão sentindo falta de outro recurso que havia nas versões anteriores do app: a possibilidade de navegar entre posts — anterior, próximo — sem voltar à tela inicial.

Antes, se não me falha a memória, tínhamos setinhas para baixo e para cima numa barra inferior da tela de leitura de posts que servia para isso.

Cocoapods-keys

Quando dou um pod install ele pede as keys, dou um enter mas não avança na instalação.

Usando Mac OSX El Capitan.

Scroll posts table when moving posts inside detail

While reading a post, if the user navigates through posts using the up and down arrows and then backs to the posts table view, he should see the last visited post in the center of the table view.
Currently he pops back to the place where the first post (the one he first opened) was. This might be confusing as is.

Improvement: Integrar ao Buddybuild

Gostaria de sugerir uma melhoria para o processo de deploy, distribuição e feedback do app: configurar e utilizar o https://buddybuild.com.

Prós:

  • Builds automáticos (com testes e logs) a cada novo commit
  • Integração com Cocoapod, Carthage( 🎱 ), Github, Bitbucket.
  • Build em multiplas versões beta/GM do Xcode (útil para testar versões sem instalação local)
  • SDK de feedback integrado: Para enviar feedback, o usuário basta tirar uma screenshot, marcar a área do erro e escrever. O time recebe um email com os detalhes. Isso. Simples assim.
  • Video de evidência de bug de até 15s antes dá app quebrar
  • Adição de usuário beta via e-mail. O usuário de teste instala as novas releases via email.
  • Controle de release por "times". Um time de QA pode receber releases diferentes do time "Pré-release"
  • Integração com Itunes Connect.
  • Free/Grátis/0800

Cons: (existe?)

  • Se encontrar algum, me avise :)

Tenho usado em 4 apps, e o processo de feedback dos usuários de teste é muito melhor. Incluir o cliente no processo de dev desde o começo faz muita diferença. Além disso, o próprio BuddyBuild faz o commit configurando o SDK.
Eu não tenho como enviar uma PR com isso, pois é preciso que o developer da conta da app store, crie e conecte suas credenciais no BuddyBuild.

Com certeza, isso vai melhorar o processo de feedback e melhoria do app.
Qualquer dúvida, estou a disposição.

ps: eu não trabalho no BuddyBuild. Apenas acho que a maneira como eles estão fazendo esse serviço: IT IS AWESOME!

Notificações de posts atualizados

Muitas vezes, quase que diariamente(!), nós atualizamos posts em vez de criar novos e "divulgamos" essas atualizações disparando um push para browsers (Safari, Chrome e Firefox) bem como fazendo um novo post nas redes sociais apontando para a mesma URL — usando a hashtag #atualização.

Quem usa o app não recebe nada disso, então seria interessante bolarmos uma forma de também levar esses pushes para lá.

Bug no app para iPad

Estava utilizando o app e no momento que clico na célula ao lado esquerdo e seguro, o app dá crash.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.