I'm Rodrigo, an iOS Developer specializing in SwiftUI, UIKit, SpriteKit, and MapKit. I created Kapi, an app designed to help Brazilians begin learning Japanese. Check it out on the App Store!
📱 SwiftUI & Combine Projects
Um aplicativo que recebe dados da internet utilizando API Rest, decodifica e armazena os dados recebidos em um banco de dados Core Data e os exibe em detalhes.
Um aplicativo para rastrear quais livros o usuário leu e o que achou deles. Utiliza CoreData para gerenciar os objetos em um banco de dados. Foi criado um componente de interface personalizado, um widget de classificação por estrelas, onde o usuário pode tocar para determinar a pontuação de um livro.
Este aplicativo inclui testes unitários e de interface, utiliza Moya/Alamofire para buscar por fatos sobre Chuck Norris em https://api.chucknorris.io e lista cada resultado da busca, permitindo ao usuário compartilhar ou favoritar quantos quiser.
Aplicativo simples que utiliza API REST para listar todas as issues do repositório apple/swift e permite ao usuário ver a descrição de cada uma, a imagem do usuário que a criou e um botão para acessar a sua página no GitHub.
Este aplicativo simula a interface de uma loja de cachorro-quentes fictícia.
Permite selecionar diversas opções de cachorro-quentes com uma variedade de preços, armazena as informações do cliente localmente e as utiliza como padrão sempre que o aplicativo for reaberto.
Além disso, ao finalizar o pedido, as informações são enviadas como JSON ao servidor reqres.in, que se houver sucesso, responderá enviado o mesmo objeto de volta para ser interpretado e mostrado ao cliente em uma notificação, que utiliza a biblioteca Alert Toast do CocoaPods.
Exemplo de tela do aplicativo, mostrando o modo claro com uma conexão bem-sucedida e o modo escuro com uma conexão malsucedida:
Rastreador de Hábito/HabitTracker Aplicativo que permite rastrear hábitos, armazenando o numero de vezes que o usuário realizou uma atividade e a sua duração média.
Aplicativo utilizado para aprender sobre a formas personalizadas utilizando paths e shapes, e animando suas mudanças.
Aplicativo que permite aos usuários aprender sobre as missões e astronautas que formaram o programa espacial Apollo da NASA. Foi utilizado Scroll View, NavigationLink, GeometryReader e o protocolo Codable.
Rastreador de despesas que separa os custos pessoais dos custos comerciais, diferencia por cor o quão caro foi cada despesa e armazena as informações no dispostivo para ficar disponível quando o usuário fechar e abrir o app novamente.
Aplicativo de educação e entretenimento infantil que ajuda a praticar a tabuada.
Aplicativo simples que foi utilizado para testar animações/transições personalizadas.
Este aplicativo é um jogo que dá ao usuário uma palavra-chave em inglês e ele tem que inserir uma nova palavra que contenha as letras da palavra-chave. O aplicativo então verifica se a palavra contém 3 ou mais letras, se realmente existe no dicionário, se não já foi inserida antes e se não é igual à palavra-chave.
Aplicativo que ajuda fãs de cafeína a ter uma boa noite de sono.
Permite ao usuário digitar quando quer acordar, por quanto tempo quer dormir e quantas xícaras de café tomou. Esta informação é mandada para o Core ML, que obtém um resultado que informa quando o usuário deve ir para a cama utilizando Machine Learning.
Um aplicativo que desafia o usuário a um jogo de pedra, papel e tesoura.
Este aplicativo é umm jogo de adivinhação que ajuda o usuário a aprender a identificar diversas bandeiras do mundo.
📱 UIKit Projects
Note-taking app that closely mirrors Apple's Notes app, allowing users to browse, create, and sort notes by date or alphabetically. It's a simple yet effective tool for organizing your thoughts.
Skills: MVVM, JSONDecoder/Encoder, Toolbar, Sections, SearchBar, TableView, Sorting, ViewCode.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-07-16.at.18.03.13.mp4
This app lets users customize and schedule notifications, setting a title and message. Once triggered, users can choose to be reminded again the next day.
Skills: UNUserNotificationCenter, UNUserNotificationCenter.current().requestAuthorization, UNNotificationCategory, UNNotificationAction, UNTimeIntervalNotificationTrigger, UNCalendarNotificationTrigger, TextView, TextField, DatePicker, SegmentedControl, Custom Font, Sections, Header.
Simulator.Screen.Recording.-.iPhone.15.Pro.Max.-.2024-07-03.at.18.05.44.mp4
A Safari extension that lets users inject custom JavaScript into web pages and save it for future use.
Technologies: NSExtensionItem, NSDictionary, UITextView, UITextField, Table View Sections.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-06-22.at.02.43.58.mp4
Simple app showcasing key facts about South American countries, including their size, population, capital, and more.
Technologies: Viewcode, UITableViewController, JSONDecoder, Codable, UIStackView, UIActivityViewController.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-06-04.at.19.11.11.mp4
A simple app designed for testing and running animations and transitions.
Technologies: UIView.animate(withDuration:), CGAffineTransform, UIView.transition.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-05-31.at.16.27.51.mp4
This app allows users to select and edit photos with Core Image filters, then save the enhanced images back to their library.
Technologies: ViewCode, Anchors, Core Image, CIContext, CIFilter, UIImagePickerController, UIStackView, UISlider.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-06-03.at.04.51.25.mp4
This app allows you to register images and add captions. It's useful if you need visual cues to remember things.
Technologies: NotificationCenter, ViewCode, Anchors, TableView, UserDefaults
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-05-17.at.23.45.51.mp4
This app simplifies remembering names by pairing them with face pictures. Whether you're a frequent traveler or struggle with recalling names, it can be a handy tool for you.
Technologies: UICollectionViewController, UICollectionViewCell, UIImagePickerController, UUID, NSObject subclasses, fatalError(), UserDefaults, NSCoding, NSKeyedArchiver, Codable, JSONEncoder
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-05-01.at.19.24.05.mp4
A classic hangman experience built with UIKit. It selects a word randomly from a list, presenting it to the user as a series of underscores. Players guess letters, with correct guesses revealing them in the word, while incorrect ones bring the sloth closer to escaping. Win by guessing the word or lose after seven incorrect guesses. Hints gradually reveal with each incorrect selection.
Technologies: Anchors, Autolayout, JSONDecoder, Codable, NSMutableAttributedString, compactMap
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-04-28.at.01.37.34.mp4
iPad word game, inspired by the popular indie game 7 Little Words. Solve puzzles by using a series of hints and a grid of letters to form the correct words.
Technologies: Anchors, Programmatic Autolayout, addTarget(), enumerated(), joined(), replacingOccurrences(), Grand Central Dispatch (GCD).
Simulator.Screen.Recording.-.iPad.Pro.12.9-inch.6th.generation.-.2024-04-24.at.18.10.41.mp4
This app takes a JSON feed and parse it into useful information for users. Specifically, it focuses on "We the People" White House petitions in the U.S.A., where citizens can submit requests, and others can vote on it.
Technologies: Grand Central Dispatch (GCD), JSON, JSONDecoder, Data, Codable, UITabBarController, UIStoryboard, HTML, UISearchController, performSelector, Quality of Service, DispatchQueue.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-04-18.at.21.20.38.mp4
A compact app designed for organizing your grocery list.
Technologies: UITableViewController, Text fields in Alerts, UIAlertController, Animations for reloading table views and Inserting rows.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-04-12.at.15.52.05.mp4
An app designed for practicing Auto Layout by utilizing both Visual Formatting Language and Anchors.
Technologies: Equal height, Aspect Ratio constraints, Visual Formatting Language, Anchors
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-04-12.at.15.18.01.mp4
In this game, players must create anagrams using letters from a given keyword. Each submitted answer undergoes checks to ensure it has a minimum of 3 letters, is valid according to the dictionary, and differs from the keyword itself.
Technologies: NSRange, Closures, UTF-16 Strings, Text fields in Alerts, UIAlertController, Animations for reloading table views and Inserting rows, UserDefaults, Shared conditional breakpoint.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-04-08.at.12.02.33.mp4
A straightforward web browser crafted with WebKit, offering premade link selection and essential features like navigation controls and page loading indicators.
Technologies: loadView(), WKWebView, Delegation, URL, URLRequest, UIToolbar, UIProgressView, Key-Value Observing (KVO)
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-03-23.at.17.46.16.mp4
Discover flags from around the world with FlagCatalog. Easily view, save, and share flags in full size with a simple tap.
Technologies: Interface Builder, Auto Layout, Outlet, UIAlertController, JSONDecoder.
Simulator.Screen.Recording.-.iPhone.15.-.2024-03-14.at.06.31.27.mp4
A simple and engaging game where users identify flags displayed on the screen. Receive instant feedback on your guesses and track your progress with a clear score and round counter on the navigation bar.
Technologies: Interface Builder, Auto Layout, Outlet, @2x and @3x images, Asset Catalog, UIButton, CALayer, UIColor, random numbers, actions, UIAlertController, UserDefaults, StackView, Local Notifications: UNUserNotificationCenter, UNTimeIntervalNotificationTrigger.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-06-03.at.05.20.55.mp4
An app for browsing National Severe Storms Laboratory images, allowing users to easily select, view, and share their favorites. It also tracks the number of views for each image.
Technologies: Collection View, Image View, App Bundle, FileManager, Typecasting, View controller, Outlet, Auto Layout, UIImage, UIBarButtonItem, UIActivityViewController, Grand Central Dispatch (GCD), UserDefaults, StackView, Debugging with assert() and Exception Breakpoints.
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-06-06.at.18.11.35.mp4
🎮 SpriteKit Projects
In this game app, users can create fireworks displays with just their fingers. Select rockets of the same color and hit the explode button or shake your device to watch them burst into brilliant fireworks. Exploding five fireworks at once earns 20 times more points than a single one. Be careful to avoid bombs, as touching them will cost a heart and bring you closer to game over.
Technologies: SKAction.follow, UIBezierPath, for case let, colorBlendFactor, UIEvent, motionBegan.
Demo.mov
JuicyTarget is a charming shooting gallery game featuring beautiful illustrations. Score points by hitting fruits and avoid insects to keep your score high. It's a cozy, stress-relief game accompanied by soothing music, perfect for relaxation. With its simple single-tap gameplay, JuicyTarget is easy to play and helps you unwind.
Technologies: SpriteKit, Timer, linearDamping, SKAction, SKAudioNode.
Teaser.mov
iPad survival game where you must navigate a spaceship through a field of space debris. The longer you survive, the higher your score, but staying still means inevitable doom!
Technologies: SpriteKit, Timer, linearDamping, angularDamping, per pixel collision, SKEmitterNode, SKAction.sequence.
Simulator.Screen.Recording.-.iPad.10th.generation.-.2024-06-10.at.11.11.20.mp4
Enjoy a whack-a-mole game on iPad with penguins and other animals. Test your reflexes and tap on penguins to score points!
Technologies: SKCropNode, SKTexture, asyncAfter(), SKAction.wait(forDuration:), SKAction.run(block:), SKAction.sequence(), SKAction.playSoundFileNamed, SKAction.moveBy.
Simulator.Screen.Recording.-.iPad.10th.generation.-.2024-05-31.at.19.44.55.mp4
iPad game similar to "Pachinko" or "Peggle". Strategically position obstacles, then release the ball to navigate through them, aiming for advantageous spots. Earn or lose points based on where the ball lands.
Technologies: SpriteKit, physics, physicsBody, SKPhysicsContactDelegate, SKEmitterNode, collisionBitMask, contactTestBitMask, SKAction, blend modes, radians, CGFloat.
Gravacao.de.Tela.2024-05-07.as.01.32.18.mov
🗺️ MapKit Projects
CapitalCities is an app showcasing all Brazilian capitals on an interactive map. Users can explore each city, discover interesting facts, and access Wikipedia articles for more information. It's great for learning about Brazil.
Technologies: MKMapView, MKAnnotation, MKPinAnnotationView, CLLocationCoordinate2D, JSON, JSONDecoder, NSObject, WKWebView.