Elements banner

Elements

33 devlogs
27h 26m 28s

Updated Project: This update is to make the app actually usable, as before it was just the table. So now I added settings, quiz, list, and onboarding views along with other things like bookmarking and haptics.
A periodic table using SwiftUI. It…

Updated Project: This update is to make the app actually usable, as before it was just the table. So now I added settings, quiz, list, and onboarding views along with other things like bookmarking and haptics.
A periodic table using SwiftUI. It uses multiple frameworks as well, such as TipKit to give the user tips, Apple Intelligence Foundation Models for an on-device quiz generation. It also has bookmarks, haptics, and some animations and symbols and transitions that I really like.

Demo Repository

Loading README...

Adon Omeri

Shipped this project!

Hours: 27.44
Cookies: 🍪 0
Multiplier: 10.58 cookies/hr

Redid the onboarding, fixed a lot of bugs, made the packages it uses offline, added relative atomic mass to periodic table, tips, scroll edge effects.

Adon Omeri

I made some final refinements to the table view to fix a bug with the context menu not showing updated data, weirdly

Attachment
0
Adon Omeri
  • fixed the foreground colour for the glass circles
  • changed the onboarding from .sheet to .fullScreenConver, because it makes more sense semantically
  • redid the onboarding sheet with dot points
  • added a light mode for the images in the onboarding, and updated images to align with the current app
  • reworded show relative atomic mass better
  • renamed Go to Swipe to continue, because it wasn’t clear that you had to swipe sideways to navigate
Attachment
Attachment
Attachment
Attachment
Attachment
0
Adon Omeri

I just realised that because the swift student challenge requires your submission to be offline i need to also make the packages offline, so i had to manually download each package and its dependencies. this would seem like a copyright but i did include a third-party-licenses.md so hopefully that should be enough to show that its not my code.

Attachment
0
Adon Omeri
  • toggling what to show in element cell - mass, atomic number
  • extend safe area to 100 height
  • fix accessibility in element cell
Attachment
Attachment
0
Adon Omeri

renamed atomic mass to relative atomic mass
i also increased the list view top blur height and fixed the filter backgrounds
also fixed the tip because before it was stuck under the toolbar

Attachment
Attachment
Attachment
0
Adon Omeri

I recreated Apple’s own scroll edge effect here because .searchable seems to remove it when you are actively searching, using a combination of opacity fade and blur fade, with the help of this blur effect. It does use a private api which explains why its performant and also looks exactly like Apple’s own one

Attachment
0
Adon Omeri

I just found the inline json as a string swift file i had, which i left after migrating the thing after an actual json file (I did this cos I was stuck trying to make Xcode read the file, and ended up having to open Swift Playgrounds to add a resources folder and then add the resources into the binary)

Attachment
0
Adon Omeri

I aded a haptics option in settings because some feedback I received was that there were too many haptics and it made it uncomfortable for them

Attachment
1

Comments

sebastiaolina1
sebastiaolina1 about 1 month ago

eu gosto muito de projetos pra celular e sei o trabalho que da pra fazer, parabéns

Adon Omeri

Previously I removed a whole bunch of properties that were in the json but i removed because i thought they were too complex, now I added them back cos my last ship gained some feedback that I should add a value and I was like well theres a settings to toggle stuff off so i might as well put them all out
next devlog ill set some more sensible defaults cos having them all on by default is a bit ridiculous tbh

Attachment
0
Adon Omeri

Final adjustments and stuff, and i pushed to app store connect to put on testflight to then submit

Attachment
0
Adon Omeri

I adjusted the padding on these, it is a bit hard to tell but it looks much more balanced. I also sped up the animation for the tableview bookmark highlighting, and added some more accessibility modifiers

Attachment
0
Adon Omeri

i added some improvements to the table view, added a toolbaritem, and a bookmarks button that dims non bookmarked items, and also fixed some padding around the. i might add zooming in and out again later, once i fix the issues that presents

Attachment
0
Adon Omeri

I added some animation to the toolbar items and spaced them out, i cant show it in the photo below but it looks really really good, i love it

Attachment
0
Adon Omeri

updated the png to a jpeg so that i could push it to testflight, waiting for a review to maybe then release

Attachment
0
Adon Omeri

I got very very carried away so I’ll just put a paragraph here
The first thing I did was add haptics when you open/close a sheet and when you change tabs, because these are navigation actions, so I thought it makes sense.
I also implemented TipKit to show about 10 different Tips around the app, helping the user find out how to use the app and make use of all of its features. It was quite annoying to make TipKit work because there isn’t much support online and its quite an obscure framework, as every other Apple framework seems to be 😭
Then I implemented accessibility across the app, accounting for text sizes, reduce motion, increase contrast and reduce transparency. It was actually very easy since the modifiers were really simple to use, like .accessibilityHint("This button adds this element to your bookmarks").
I also adjusted the pickers in list view to use a better background, and also added a new picker that can filter only bookmarks or just push them to the top.
I added some sheet transitions which are really nice, they make the sheet zoom out of the place where you clicked it, instead of just from the bottom of the screen, which is quite buggy but because of Apple’s api, not something I can fix.
I also had another really annoying thing where I couldn’t make the app read from the bundle, so I couldn’t load any json into it, so I had to hand-paste the massive json file into a Swift string, I finally fixed that now
And for the bookmarks I added a bookmark detail view in settings to see and delete them
I also added some progressiveblur at the top of the list view because for some reason .searchable removes all scroll edge effects and toolbar items, so it removed the auto-placed effect that keeps the time and status legible, so I had to just check if the keyboard was visible (because then the edge effect would be gone) and apply my own edge effect

Attachment
Attachment
Attachment
Attachment
0
Adon Omeri

i completely rewrote the quiz view, which uses apple intelligence to make and mark a quiz, and alert the user of their score, which i found quite hard because the model is quite small, and that meant my token size was small, only 4096 tokens, and also it just wasn’t very capable of following instructions, or marking questions properly (i gave it the question and right answer and user selection it still failed). i found that telling it not to do something explicitly made it do that thing, so my best option was to not talk about what not to do or else it would very much do that thing. i also added the usual transitions and animations to the questions and buttons etc. i quite like how the ai also generates the alert title and message and button, making it quite unique and unpredictable, which in this rare case is actually a good thing!

Attachment
0
Adon Omeri

because onboarding only had one button i moved it out into the general section of settings, and i added sorting to the list view.

Attachment
Attachment
0
Adon Omeri

in the list view i swapped around the number and symbol so that they could lay themselves out better, and for the filter pickers i refined their foreground colour, background shadow, and spacing.

Attachment
Attachment
0
Adon Omeri

i decided to overhaul the table view because it was really buggy and glitchy. i removed the NavigationStack, because that appeared to make the scrollview glitch when scrolling around the edges, I tried everything but removing the Title ToolbarItem and NavigationStack was the only thing that worked. I also removed the Slider because that was unnecessary after I thought about it. Because iOS provided a scroll edge effect by default when i had toolbar items, and I removed them, I had to implement my own custom progressive blur to cover the top edge of the screen, I also added some admittedly nonoptimal custom padding to the container, which wasn’t even symmetrical, although now it looks good so I’m happy.

Attachment
Attachment
Attachment
0
Adon Omeri

i refined the intro view, it now applies a really nice scale and blur effect when scrolling, which also allows the user to scroll backwards and forwards instead of just forwards, and removes the bottom bar buttons to make the image bigger.

Attachment
Attachment
Attachment
0
Adon Omeri

final fixes and typos

Attachment
0
Adon Omeri

Shipped this project!

Hours: 5.94
Cookies: 🍪 137
Multiplier: 23.12 cookies/hr

I made this SwiftUI periodic table app that has the common table view, a list view with filtering, and a quiz view that uses Apple Foundation Models (Apple Intelligence) to make and mark a quiz. I had a lot of fun making it and especially using animations, symbols, and liquid glass elements.

Adon Omeri

fixed some types and added intro views

Attachment
0
Adon Omeri

finished it, i might refine it later but its basically done. i like it

Attachment
0
Adon Omeri

trying to make it look nice but there are so many components and labels for marking etc. also the foundation models are not very good at marking

Attachment
0
Adon Omeri

having fun prompt building for the apple foundation model.

Attachment
0
Adon Omeri

Finished the intro view and doing the quiz now that is going to use Apple Intelligence

Attachment
0
Adon Omeri

done standardising the intro views to have the same layout, now adjusting some padding and spacers.

Attachment
0
Adon Omeri

Started the intro for the table view, first bug being the text not going on multiple lines.

Attachment
0
Adon Omeri

Starting to make the introduction view that tells the user all about teh app and its features

Attachment
0
Adon Omeri

cleaned up a few things and the revert seems successful so far, added ticks to the stepper and adjusted padding and alignment in the list view

Attachment
0
Adon Omeri

reverted to an eariler version, maybe i get a new idea for something that works better then my only working idea which is a zoom slider and no finger gesture which is annoying but removes all of my problems

Attachment
0
Adon Omeri

I’m trying to make the grid actually work with the pan and zoom gestures without conflicting with the buttons, which is very annoying and i cycle between flat out not working, to being very slow, to just pressing the buttons instead of scrolling, etc.

Attachment
0
Adon Omeri

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0