cuappdev / cuappdev/announcements-ios

MOBILE-2: Create iOS library

Open
#1 0 comments 0 reactions 1 assignee Claimed by @MrPeterss View on GitHub
enhancement
Dominant language
Swift
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

### Acceptance Criteria

1. Create the UI according to the [[Figma](https://www.figma.com/design/cPPL4aIN9EdMaAca6Us0hu/Announcements?node-id=1167-56484&node-type=FRAME&t=Zx8TNAowTeZuFHGP-0)](https://www.figma.com/design/cPPL4aIN9EdMaAca6Us0hu/Announcements?node-id=1167-56484&node-type=FRAME&t=Zx8TNAowTeZuFHGP-0).
1. Make sure to use the padding and font sizes specified in the **Desktop** version.
2. The component should be able to take in the following:
1. The host URL.
2. The slug.
3. (Optional) A specified font for the title.
4. (Optional) A specified font for the body.
3. Multiple back to back announcements should be handled.
1. Loop through the active announcements fetched from the API.
2. For every announcement, check if it’s already seen (in local storage).
3. If so, don’t display the announcement. If not, display the announcement, store in local storage, and exit out of the for loop so that **only one announcement shows at at time.**
4. Tapping on the announcement banner should open the link in browser **and dismiss the view without animation.**
5. Tapping on the close button should dismiss the view **with animation.**
1. 0.2 seconds, ease-in-out, opacity and translate up.
6. The announcement should dismiss by itself after **8 seconds with animation.**
1. 0.2 seconds, ease-in-out, opacity and translate up.
7. The announcement should appear **with animation, after a delay of 4 seconds.**
1. 0.4 seconds, ease-in-out, opacity and translate down.
8. Create a function to reset local storage.
9. Should be compatible with SwiftUI and UIKit.

### Out of Scope

1. Publishing the library via SPM.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.