2018 July - Projects Log

This month - finish, polish, and test my library checkout app!

2018 July 9, Monday

Boy is vacation nice! Now, resuming work, both professionally and for my side projects, I'm ready to continue having fun and producing awesome stuff.

This evening, I'm trying to get https://www.npmjs.com/package/react-native-keyboard-aware-scroll-view to work, but I'm having some difficulty. The idea is to make sure that when you click on a text input field and the phone keyboard pops up, then the view scrolls to make sure that you can still see the text field, and it's not covered by the keyboard. Unfortunately, 's not scrollin'. So, my next approach is to see if it works in a brand new project. It's a good thing these React Native apps are designed to be easy to create.

2018 July 11, Wednesday

So tonight, I start experimenting with actual WebGL, to see how good of performance a live graph render can get. Should be interesting, and writing shader code looks bizzare, though powerful. I'm starting from the electron-quick-start, and so far, things seem to be working as expected, with some auto-reloading thrown in for a bonus!

2018 July 16, Monday

My, how a week flies with little progress! This week, I will make a concerted effort to finish by library checkout app, top priority. Tonight, however, I was teaching two new high schoolers how to program in C for robotics. There are few things I enjoy better than teaching, and more and more, I wonder if I shall be doing it more in the future.

2018 July 17, Tuesday

Tonight I tried working on the Library app, but the camera on my phone was broken. I managed to upgrade Expo to version 28, otherwise, not a whole lot of progress.

2018 July 19, Thursday

I found that clearing my camera app data and rebooting my phone apparently fixed my camera, so I can develop again! However, instead of doing that, I made more progress with my performance graphing test. I got WebGL initialized per the MDN WebGL tutorial, but I figured that before I go too far, I should establish a baseline using what I know about the Canvas 2D context. I produced a basic demo where as fast as it can, the app plots 64 traces on a 1920x1080 canvas 2d context, changing color every frame, to the tune of about 30 FPS, slower than the ideal 60 FPS that I was getting with fewer traces. It is still a demo to beat for performance though, and I think it represents what could be considered a high-end graph performance load. Currently, the data is precomputed randomly and saved in a buffer, but it would be neat to use the Web Audio API to receive data.

2018 July 23, Monday

Though busy, I managed to get CSS Flexbox layout added for two columns below the submit button for quick actions on my Library Checkout App. The idea will be that a user might be able to resolve a confusing situation if they knew what books were checked out for the student entered, and what students had the given book checked out. Not everything entered is likely to be perfect, and providing a user with enough information to resolve any discrepancy would be very helpful. Getting closer, not quite ready yet, but just a few more things before testing.

2018 July 28, Saturday

Finally, for my Library Checkout App, the quick action buttons are at the bottom of the screen and working beautifully! I discovered and fixed some bugs in my initial implementations for book and record list utility functions. I even added a pull-down refresh to reload records from Google Sheets, which was exactly as easy and convenient as I would expect out of the React ecosystem. It still has rough edges, being before version 1 yet, but I'm continually tickled pink about React Native, and how it allows you to structure applications with such a logical flow.

The only things I have left to do are to implement a summary page (content to be determined), and to finish the packaging process for use on the app store.