Giter VIP home page Giter VIP logo

caronae-ios's Introduction

Caronaê - iOS

CircleCI

Aplicativo para iPhone do Caronaê.

Requisitos:

  • Xcode 10+
  • iOS 9.0+

Instalação

Instale as ferramentas do projeto através do Terminal:

bundle install

Em seguida, instale as dependências necessárias usando o CocoaPods:

bundle exec pod install

Ao concluir, abra o projeto pelo arquivo Caronae.xcworkspace.

Fastlane

Este projeto está configurado com o fastlane. Consulte a documentação da pasta fastlane para ver as ações disponíveis.

O Fastlane é instalado através do comando bundle install.

Firebase Cloud Messaging

Este projeto faz uso da plataforma Firebase para receber notificações push. Para fazer uso desse recurso é necessário gerar e adicionar o arquivo GoogleService-Info.plist dentro do diretório deste projeto.

Consulte a documentação para saber mais informações. Um exemplo do arquivo pode ser encontrado em: Caronae/Supporting Files/GoogleService-Info.plist.example.

caronae-ios's People

Contributors

damascenorafael avatar dependabot[bot] avatar fcrespo82 avatar fpg1503 avatar macecchi avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

caronae-ios's Issues

Trocar lib AFNetworking por Alamofire

Atualmente toda a comunicação com o servidor do Caronaê é feita através da lib AFNetworking. Como o Caronaê se encontra quase que totalmente em swift o objetivo é migrar este uso para a lib Alamofire.

Detalhes

Toda a parte de Rede do Caronaê está localizada em Caronae > Services, neste grupo existem módulos de comunicação separados. Todos estes Services utilizam uma instância de CaronaeAPIHTTPSessionManager.swift localizada em Caronae > Networking

Adicionar regra personalizada (regex) no SwiftLint (linter) para verificar linhas em branco

Atualmente o Caronaê utiliza o linter SwiftLint e está configurado com o arquivo .swiftlint.yml. Neste arquivo a regra vertical_whitespace está configurada para permitir no máximo 2 linhas em branco seguidas.

O objetivo é desabilitar esta regra no arquivo .swiftlint.yml e criar uma ou duas regras personalizadas de forma que:

  • Os comentários do tipo // MARK: estejam sempre com duas linhas em branco seguidas acima e uma abaixo
  • Fora a situação anterior, só seja permitido no máximo uma linha em branco entre código/comentário etc.

Exemplo da situação que deve ser aceita para os comentários do tipo // MARK: :

        ...
    }
    
    
    // MARK: CollectionView DataSource (and related) methods
    
    func ...

OBS: As regras devem considerar uma linha que só possui espaço como uma linha em branco. Existe uma outra regra no SwiftLint que alerta para espaços em branco em linhas (trailing-whitespace, que se encontra desabilitada no arquivo de configuração)

Personalizar separator line acima dos botões do alerta de forma nativa (separator line)

Atualmente a implementação do CaronaeAlertController está em Objective-C e utiliza uma versão antiga da lib SDCAlertView.

Esta classe atua para criar AlertViews personalizados com uma barra acima dos botões de opção (separator line, que é uma imagem com o nome SeparatorColor já inserida no projeto). Nas versões mais recentes dessa lib se tornou mais complicado fazer tal personalização, como pode ser visto nesta issue.

A ideia é criar uma classe em um arquivo Etc/CaronaeAlertController.swift, removendo os arquivos .h e .m anteriores, com os métodos equivalentes à implementação original, porém fazendo esta personalização de forma nativa sem o uso de uma lib.

Foto do alerta na forma esperada:

44952636-a8f94c00-ae5a-11e8-92aa-7ffaef2c5251

Atualizar para Swift 4

Atualmente grande parte do código do Caronaê está em Swift 3, com a chegada do novo iOS e Xcode também foi liberada o Swift 4.

Detalhes

Existem alguns tutoriais na internet para a migração. Deve-se ter atenção com @objc inference que deve ser minimizada. Após a conversão a Swift 3 @objc inference deve ser marcada como default como demonstrado em alguns tutoriais.
Existe um detalhamento na documentação oficial da Apple

Corrigir badge de notificação no chat aparecendo acima da status bar

Atualmente o Caronaê utiliza a lib MIBadgeButton-Swift para criar os badges na tabBar e também no botão de chat da tela de carona. No botão de chat que seria como um BarButtonItem o badge acaba sendo coberto pela status bar, aparecendo com a circunferência cortada na parte superior.

Existe uma issue aberta para esta lib, mas parece não resolver o problema. Caso exista uma outra lib similar que consiga atender as necessidades do aplicativo ela pode ser usada substituindo a atual.

As modificações principais serão na função updateChatButtonBadge em Ride/RideViewController+rideActions.swift.
Para testar a visualização do badge você pode fazer a chamada desta função no ViewDidLoad do arquivo Ride/RideViewController.swift, deixando algum número hardcoded para o badge na função.

Comportamento atual:

captura_de_tela_2018-10-17_a__s_10 16 40

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.