Activity

Brandon

Someone please pulled me out of my workspace and told me to go touch some grass 🤯

This devlog will have a bit of a “technical” touch. First, we need to mention the reason we have this devlog, which is a recent GitHub issue. Its content suggests that my program should support older Android versions (possibly around Android 6).

At that time, my app only allowed installation on devices running Android 7+. When I came up with the idea, I also targeted Android 7+ because the BLE functions work well from this version. But coincidentally, I have a tablet at home running Android 5. A fleeting thot crossed my mind, and I decided to make the BTChess app compatible down to Android 5!! A move that I don’t know if it’s genius or a mistake anymore.

The first thing I have to do is reinstall the Flutter SDK. The Flutter SDK I was using at that time supported minSdkVersion=24. That means the app built will only run on Android with API 24+ (that is, Android 7+). At first, I tried to lower it manually in the configuration files, but that didn’t seem to solve the problem, so I had to find and install an older version of the Flutter SDK. Then, I had to review all the project dependencies, check which ones do not support the current SDK version, and downgrade their versions. After that, I was able to build the app for Android 5+, but another issue arose. There is a slight difference in how the app “requests” Bluetooth permissions, and it took me an extremely long time to fix it so that it could work.

I think it’s time to discuss the trade-offs. The benefits of this modification include the ability for BTChess to support Android 5+ instead of just Android 7+ (BTChess can be used on an Android tablet over 10 years old!). The “smoothness” of the app and the stability of the BLE gameplay mode were compromised as a result of having to downgrade several dependencies. I’ll make an effort to enhance and optimize these shortcomings.

So, do you think this modification is worthwhile 🤔

1

Comments

Brandon
Brandon 1 day ago

I almost forgot to mention the demo video. It’s a BLE mode demo conducted on an Android tablet (Android 5.1.1) and an Android phone (Android 15). Quite impressive, right 🤓

Brandon

I just resolved an issue opened by someone I don’t even know?

If you feel it seems harsh and distant when I use the term “a person I don’t know at all.” Yes, you will be surprised when you read on 🤓

A week has passed, and I think I need to update the progress of this project. I have improved the UX a bit so that when the app crashes, it won’t throw a long, scary exception message at you. Actually, at first, I thot keeping it as it was would be better (it really is better for debugging 🥲). But for users, throwing the entire exception message out makes my app look unprofessional in some way, so I have to fix it.

You know what, just a few days ago I went on GitHub and saw that someone just starred my repo. I was very happy, but at that moment I didn’t think much until I went to the repo page of this project to check. An issue was created, you have no idea how happy I was at that moment. My project was simply created because I needed it, like I created it to solve my own problem when playing chess with friends. So, the moment I realized that what I created to solve my own problem could also help others made me extremely happy. It’s like the feeling of having done something useful, really wonderful, right?

That’s it, I just resolved an issue opened by someone I don’t even know. But that “stranger” turned that day into the best day I’ve had since joining Flavortown 🥰

Attachment
Attachment
0
Brandon

The feeling of saying “it works” is the best thing.

That day I went to school. with the intention of borrowing a few friends’ phones to test the BLE game mode feature. My friends happily agreed, and then they sat and watched me install the app. This time I tested it on two iPhones, the installation process went smoothly, everything looked fine. I told my friends that my app allows playing chess via Bluetooth connection. Everyone was impressed, and I was extremely excited to show them the result of my more than three months of work.

But whatever happens, happens. I had never tested this app on two iOS devices before, and the moment I tried to connect the two machines together, a gloomy error message appeared.”Connection Failed”. I tried again and again, but it was still the same, “Connection Failed”. I could feel the excitement fading away, followed by forced smiles. At that moment, my pride seemed to be shattered by that error message. I hurriedly uninstalled the app, returned the phone to his friend, and accompanied it with a forced smile and a thank you…

I went home and thot back on what happened that morning. Then I realized, normally when using the app, I always pair two devices together in the Bluetooth settings first to avoid errors, but the two iPhones, or rather the two iOS devices, cannot do that. The issue was identified, and I started to invest it and work on improving the app continuously for a week.

A week later, I borrowed my friends’ phones again. They let me borrow it too, but the excitement from before has diminished a lot. I understand, and I want them to see my achievement, something I am proud of. I installed the app, set everything up, took a deep breath, and tried playing in BLE mode. I try to join the lobby, the message “Connecting” appeared, and perhaps at that moment, anyone nearby could see how nervous I was. And my efforts were rewarded justly. The “Opponent Connected” notification appeared on the screen, accompanied by the cheers of friends around. The sigh of relief along with the words “it works,” finally, I did it.

P.S.: My friends are very excited about the app I made. Although it’s still a bit buggy, the Bluetooth game mode is something truly novel.

1

Comments

Brandon
Brandon 13 days ago

This video is a clip I recorded while playing with another iOS device via Bluetooth connection. I hope you understand that I don’t have many filming devices to show you the scene of our whole class being amazed by my app 🥲

Brandon

A bunch of connection bugs between Android and iOS devices have been fixed. I have released version 1.0.0-alpha. 1 😯
To be honest, it has quite a few technical improvements, and I’ve also updated the README of the repo to make it look “cool” 🤔 and less boring to read (I learned from my experience after reading the reviews from you guys on the previous ship 🤓).
The moment I was preparing to publish this new pre-released version. I was thinking about naming it with the suffix “alpha. 1” or “beta” because after all, it’s a big change that I’m proud of. But from an user’s perspective, this version is not enough to be called beta (or at least, that’s what I think 🥲).
The last thing I want to say in this devlog is that even tho the app has an iOS version, the installation process is extremely difficult 😭
I’ve done my best to write an installation guide, so if you’re interested, you can check it out on my repo.

I would be very happy if you could give my repo a star, it would be a huge motivation 🥰

1

Comments

Brandon
Brandon 19 days ago

Oh, I forgot to mention the video; it’s a demo I made on the newly released version. The task of improving the app so that it can work on two different operating systems like this has taken more than a week of me sitting in front of my laptop coding and reading docs. I think I need to go touch some grass 🏃‍♂️

Brandon

This is a video I show you how I get the IPA file of my app on Windows, “Or is it?” 🤨 Actually, I spent time searching, and it turns out that I can get an IPA file without macOS Xcode stuff.

The secret here is the macOS runner from GitHub Actions!! Yeah, by using the macOS runner, I can build the IPA file. However, I don’t have an Apple Developer account to “sign” the code built, so things result in a mess that I have to put more work on to find a way to make that mess become an IPA file, and I did it. 🤓 I also build a batch script to automate the process (which is showcased in the video), and I also document the instruction so you can do it too.

It means I’m able to test and build the app for iOS!! Yeah, without macOS, without Xcode, omg.

0
Brandon

Shipped this project!

Hours: 52.3
Cookies: 🍪 1174
Multiplier: 22.45 cookies/hr

I build a custom BLE protocol, with the love of chess and lot of hard work. I put them together and I represent you BTChess - a mobile chess app with local multiplayer via Bluetooth Low Energy :yayayayay:

Brandon

yoo and this is the demo of the first alpha version of my app. It is “usable” to some extent, although there are still many shortcomings, but overall the main functions are working. This took me a lot of time, I had to spend 2 weeks researching directions as well as drawing plans and designing the architecture for the app. Next is a week to create the custom BLE protocol for the app. then over 2 months of development and finally 1 week for testing and bug fixing (I hate the bug fixing part the most lol, it’s extremely exhausting). Anyway, it’s done now, and I hope you all like my idea for this app. If you have any suggestions, feel free to DM me on Slack or open an issue on GitHub.

P.S.: Actually, by the time of this devlog, I’ve only logged about 52 hours on Hackatime. I wish the time I spent researching and designing the protocol could be counted too, that would be great haha.

0
Brandon

Yoo, so this is a short demo of the app. It only covers the hotseat mode of the app; the BLE mode will be shown in another video. I hope you guys like it. :D

0
Brandon

Long time no adding devlog, and here’s one :O… I think it’s almost done implementing this stuff and ready to ship, guys. I was implementing this game screen stuff through the Lunar New Year. Now I’m rushing to ship it ASAP.
Edit: Sorry cuz it’s still a code editor pic but i’m assure the next devlog will be the demo of this game

Attachment
0
Brandon

Working pretty hard these days =)) I plan to make a landing page for this project, cuz I put a lot of effort to it, and I love making it ^^ Hope this project brings me a macbook lol, to be able to build this app for iOS

Attachment
0
Brandon

I’ve implemented a full game screen and some widgets to show the player name, color indicator, captured pieces, and material advantage. I also did some work on the action buttons that do flip the board, undo, draw, resign, etc. The next phase would be the home screen and navigation features.

Attachment
0
Brandon

Another devlog coming right up. The app passed all the unit tests, and rn I’m implementing the UI. Time to find good assets for the app :DDD Take a look at that crazy pyramid!!

Attachment
0
Brandon

I’ve working on this project for a week now, and I’m here to update about the progress of making this app. I’ve implemented the core model and service for the app. It’s ready for the first unit test (to make sure everything function properly). I plan to learn some CI/CD to automate the testing progress

Attachment
1

Comments

Sebastian Wu
Sebastian Wu 3 months ago

nice pyraminx u got there :) (whys it unsolved 💔 😔)

Brandon

Hi, this is my first devlog, on my first project submitted to Flavortown. The idea I got is from my school, when I found it hard to play chess with my friend comfortably (my chess set is too bulky to bring to class, and playing chess on one’s phone is uncomfortable for me), which is why I thought at this time, “What if we can play chess on two phones connected through Bluetooth?” Btw, we don’t have wifi at my local school, so Bluetooth is the first thing that comes to my mind when I’m thinking of a way to connect two phones. Also want to say hi to you guys; my name is Nguyen, you can call me Brandon, and I love to make things that solve real problems.

Attachment
0