Developing Atrable | About Seihyun Lee
Developing AtrableBusking ClubSubmerged Under SnowOklahoma!Scratch Coding Class (Dec 2022)Getting Interested in Computers (good old days)ETC (Resume / CV)
logo

Atrable

Nov 2023 -

Check my GitHub to see what I'm up to lately.

Go to atrable.com to learn more about Atrable.

Oct 2023

David & Mark joined for marketing!

We've made several videos for advertisement. We're going to publish them once I implement the new core features.

5 sec skip / rewind

For audio, tap the buttons ◀◀ and ▶▶. For videos, double-tap to skip or rewind.

Screenshot

Update the "There are new diaries" banner

Previously, the app checked the database every time you went back to the home page. Now it's updated in real-time.

Screenshot

Sort diaries by time uploaded / recorded

Diaries on the home are sorted by the time uploaded, and the diaries on the profile page are sorted by the time created.

Screenshot

More compact design for diaries in the home

It shrinks friends' profiles on the home by default.

Based on the feedback from David

Screenshot

Before

Screenshot

After

Sep 2023

Subscribe to Friends

Get notified when your friends upload a diary.

TODO: Subscribe to a public figure

Get Notified button
Notify friends checkbox in Upload Diary page

Friendly Message under Record Button

I like greeting people

Greetings - Good morning
Greetings - What's going on?

Change Password Without Leaving the App

Opening an external link to change the password doesn't give you a good experience. It's better to change it without leaving the app.

If you go through "Forgot Password", it'll still guide you using an external link though.

Account Settings page

Android: Fix Conversation Notifications Appearance

Atrable chat notifications were shown way below the notification center with no profile photo on Android, and I found the reason why! The conversation notification requires Shortcuts to be implemented, but I forgot to do that. I did it now though.

Screenshot of Android chat notification

Aug 2023

Show Date & Visibility for Diary

Check the date & visibility of diaries right away

Screenshot of diary view

iOS: "Done" Button to Close Keyboard

For "Upload Diary" page

iPhones don't have the back button, I have to implement it separately :0

Screenshot of the Upload Diary page without keyboard opened
Screenshot of the Upload Diary page with keyboard opened

Jul 2023

New Buttons on the Diary Details Page

Share Link and Export Audio/Video

Screenshot of the new details page

New Home Page UI

  • Display your diaries on the top of the page
  • Make the Explore tab more accessible
Screenshot of the new home page

New App Details Cover Image

"Share your actual stories" → "Record your life stories."

The word "actual" in the phrase "share your actual stories" kinda gives the feeling that they should only share the stories that they think are meaningful. We want to be more welcoming, so I changed the motto to "Record your life stories."

Record your life stories

Jun 2023

Nothing Much

I was super busy with Busking Club and final exams 😵

May 2023

Compact UI for Home Page

and it looks like this 😎

Scroll vertically to scroll through friends, scroll horizontally to scroll through a person's diaries.

new home page UI

2-Step Verification

An extra layer of security with a phone number

Gotta support a secondary method soon

Apr 2023

Weekly Summary Notification for Diaries

My friends often forget about Atrable, so I thought reminding them every week would bring them to engage more.

Now (= Aug 5, 2023), I learned that this feature doesn't bring people to engage that much (it probably does make people open the app once or twice, but it doesn't give people enough motivation to start recording diaries). I'm going to deprecate this after implementing something else 😼.

Screenshot of weekly summary notification

Easier to Use Notification Settings Page

Switching the toggle would be saved right away.

Fold Long Text

to prevent David from bugging the app UI using endlessly long text.

Mar 2023

Finally released v1.3.2!

I've been holding off releasing v1.3 for a while. I finally released it!

Padding & Constraints for Big Screen UI

I put some padding & constraints on widgets so that they won't look broken on big screens.

Android Conversation Notification

The notification shows the profile photo of the user (Android)

I feel like it's still a bit buggy though. Gotta figure it out.

New App Details Image

I thought the old one (from Oct 2022) wasn't really appealing, so I made some modifications.

Share your actual stories
Record your honest feelings with audio and video
Get closer to your friends by chatting about your diaries

New Home Page Design

Still working on it

Feb 2023

Retry Uploading / Sending if Failed

If the app gets terminated while uploading a diary or sending a chat message, it will ask you if you're going to retry the uploading / sending it on the next launch.

Camera Controls

Camera on/off, flip camera, zoom in/out, flashlight on/off Ffmpeg was so hard to deal with. I implemented it though 😵‍💫.

Send Photos

Send and receive photos. My main focus is on audio and video rather than photos, but you can send photos if you want to.

Send photos

Jan 2023: Stabilize for real-life use [3]

Save messages locally

Previously, all the messages were loaded directly from the server. Now the messages are permanently saved on your device once you read them.

Audios, videos, and other imports are not saved on the device, and are saved on the server instead. It'll take up too much storage if all the audios, videos, and photos get saved on the device.

Check if the Message is Notified

Check if the notification for your new message is successfully delivered.

Notified sign under a chat message

Open the URL and Phone Number

Open web URL and phone number contained in a text.

Open url, email, and phone number

Thumbnail for Videos

Thumbnails are now generated and displayed for videos.

Thumbnail for videos

Dec 2022: Stabilize for real-life use [2]

Reactions and Visitors to Diary

Previously, the views (listens / visitors) and the reactions were recorded, but there was no way to see who they were. I wanted to know who it was that reacted or listened to my diary, so I made this feature.

Indicators

Those tiny circle dots indicate new friend requests and chat messages.

New friend request & chat message indicator

Deal with foreground notifications on the native side

Displaying foreground notifications using flutter_local_notifications was too complicated for my use.

Instead of using the package to display notifications from the Flutter side, I wrote some code to sync the currently opened page with the native side (iOS and Android) and filter the incoming notifications based on the currently opened page.

Migrate to NextJS (www.atrable.com)

Because GatsbyJS is not made for Dynamic Server Side Rendering, I migrated to NextJS to fetch some data from the DB for profile pages.

I also made the website look cooler by displaying some videos on the homepage.

Nov 2022: Stabilize for real-life use [1]

No more jank when the recorder screen opens

When the Past Records page opens, the app freezes for like a one full second. The function for sorting the past records was taking a long time, so I wrapped the sorting thingy with compute to prevent it from blocking the main thread or smth.

Preview audio/video message before sent

Previously, the audio and video messages were sent right after ending the recording in a chatroom. I edited it to be able to display the preview of the audio / video before sending it.

Compact Diary UI in Chatrooms

It now looks more similar to other audio / video messages.

Send your audio / video to friends

This allows you to send the recorded audio / video to others through chatrooms.

screenshot

Profile Link & QR code

I wanted to share my Atrable profile with my friends using a QR code, instead of typing the username on the search page. I first implemented a way to display the profile on the web. Then I added a button to get a profile QR code in the app.

I'm using GatsbyJS for www.atrable.com now, but I'm starting to see some limitations of Static-Site-Generation :/ The profile is loaded after the initial rendering completes. As a result, if the link is shared through chat apps or social media, the title stays in the default one (which is literally @<!-- -->[...]<!-- --> | Atrable<!-- -->). Planning to migrate to NextJS soon.

Example: www.atrable.com/u/shawn

Squishy Buttons

The buttons got more squishy.

Select Records in Past Records

I modified the Past Records page so that people can select the records and delete / upload / share them.

Good for College Application

My friend told me that Atrable would be good for my college application. I wasn't thinking about it, but I think that's true 👍.

Sep - Oct 2022: Changes for v1.2.0

"Post" → "Diary"

The audios were called "Audio Post", but now I think the word "diary" fits better than "post".

When I say it's a "post", it gives me a feeling of disclosing myself to the public. It isn't wrong, but the audios are more daily, personal, and reflective, which are closer to diaries.

Diary + Chat

I started to think that comments are not for "diaries". Through comments, people literally "comment" on others. This wouldn't be desirable for an uploader who just wants to record their day.

Diary comments are deprecated.

Instead, people can now send their diaries to friends and the friends can reply to it.

New Diary Visibility Setting

The old db structure for post visibility settings didn't make sense, so I made some changes. It was quite a huge change.

New App Details Image

I thought the old one (from Aug 2022) wasn't really appealing, so I made some modifications.

Record your stories with Audio Diary
Send it to friends

v1.1.2 Release

I released v1.1.2 (Aug 2022 works) on the App Store.

My Android friends also want to get this app, so I gotta release it on the Play Store too.

Aug 2022: Changes for v1.1.2

Post Carousel

You slide the post sideways to listen to the uploader's previous / next post.

This lets you see the full story of the uploader.

Post Comments Design Change

Comments look more like a single chat thread.

New App Details Image

I thought the old one (from Jul 2022) wasn't really appealing, so I made some modifications.

Small yet effortful stories,
Record + share those with audio

Jul 2022: Alpha → Beta

Tried to Advertise

I made a video to submit this app to the Congressional App Challenge and advertise it at once. I was trying to kill two "birds" with one "stone", but I think I lost both birds; I was being too informal to submit it to the contest, but the video was quite boring to be a good advertisement. I'm going to refilm it 😼

Change the Catchphrase

It used to be "Share your day with audio and video." I thought it was too wordy, so I changed it to "Your not-so-special moments, share it on Atrable"

App Details Image

I made these pictures using Vectornator.

Your not-so-special moments,
Share it on Atrable
Atrable app detail - share post
Atrable app detail - my page
Atrable app detail - post details

Changes in the Fundamental Features

  • Replace likes with emoji reactions
  • "Likes" give me a feeling that I should post something "likeable" (or smth that can be loved by the public). I replaced the likes system with the emoji-counting system to feel free to record and share whatever I wanted to because emoji lets reactions with more diverse and actual emotions.
  • Replace Share With Friends with OnlyFriendsPost
  • The old post visibility settings with Share With Friends didn't make sense, so I replaced it with OnlyFriendsPosts instead.
    So now, there are 2 types of posts: PublicPost and OnlyFriendsPost. Anybody can view a PublicPost, and only friends can view an OnlyFriendsPost.

Fix Bugs

There were a lot a lot 😩😵‍💫

Minor Changes on v1.1.0

(David strongly suggested)

  • A smoother audio player SeekBar
  • Crop profile photo when setting it

Mar-Jun 2022: Alpha Build

Play Audios Efficiently

Using a class named ManageAudioPlayers (I made it!), each page can efficiently manage audio plays.

Record and Play Videos

It was time-consuming but easier than I thought. I implemented a way to turn on the camera when the audio recording is going on, mix the recorded audio and video, and play the video files using the video_player package.

I was sad because of the limited functionality of the video_player package, but it works!

Suggested Posts

On the SuggestedPosts page, random public posts are fetched and displayed.

Audios are automatically played as the page is scrolled.

Post Details

In PostDetailsPage, the uploader can see the details of the post (views, likes, and comments). Comments are accessible here.

Post Likes & Comments & Views

You can like a post by pressing the ❤️ button.

You can comment about a post on the linked PostCommentChatroom, which is a public chatroom for anyone.

View would be counted when more than 1/3 or 3 sec of the audio is played.

Post Visibility: Share With Friends

In SharePost, I replaced Send to feature, which was used to send the post itself through chatroom, with Share With Friends.

With Share With Friends, people can allow only some of their friends to view the post.

Chatroom Design Change

Show the time when the message was sent, with a better design.

If it's not a DMChatroom, show people's profiles.

Sending indicator with shimmer effect.

Chatroom Pagination

Much better pagination; I used infinite_scroll_pagination to fetch older messages and used FirebaseFirestore real-time update feature to fetch newer messages in real-time.

Etc

Continue with Apple when signing in/up, don't force/require people to verify email: only show a popup, allow users to check past records locally, set correct keyboard text capitalization settings, dark mode, ...

Jan-Feb 2022: Audio!

I implemented audio-related features such as sharing an audio post, sending an audio message, playing those in a chatroom, etc.,

Simulator_Screen_Shot_Feb7_1
Simulator_Screen_Shot_Feb7_1
Simulator_Screen_Shot_Feb7_1
Simulator_Screen_Shot_Feb7_1

Nov - Dec 2021

I made basic features that a social networking platform should provide, such as friend relationship management, viewing others' profiles, heart (like) button, and sending chat messages.

IMG_2848
IMG_2850
IMG_2849
IMG_2851

Oct 2021

I got the idea of an audio-based social media. Existing social media platforms focus on photos, which makes people focus on appearances. On the other hand, audio lets you focus on the actual stuff that is going on. Audio also gives a rich feeling of being connected, and I loved it.

Aug - Sep 2021

I made Main PageAbout Page, and Get Page to explain my idea of the app using Google Sites. It's quite different from how Atrable is like now. (now = Dec 30, 2022 21:41:20)

Jun - Aug 2021

I built an app using Flutter by watching tutorials on YouTube, reading official/unofficial documents, and reading questions & answers on Stack Overflow.

The main focus of the app is to make people share a post and directly chat about it.

(It's a prototype, so nothing really works well)

Aug26_2021_ViewResponses
Aug26_2021

- May 2021

I tried making a website where people can share their travel stories, view other traveler's stories, and follow travelers. But guess what chicken butt, I only implemented the fundamental authentication system there.

Check Shawn-sudo/space-shuttle for more info