At this point I have finished 9 classes that are in the Coursera Data Science Specialization program. I am very happy about it but I still have the final overall project to complete. Last class of the program has a final assignment which requires a shiny app. Shiny is a tool in R that will write web apps that run R code. It uses bootstrap for the front end but I believe you can customize it to your liking. I am very new to it.
It has been very frustrating for me. I look at my notes and I have filled one and a half notebooks so far for the whole specialization yet when it comes to shiny section, I have a page. Why ? Well because I thought “Well I am a web developer, shiny is for the web, I can write web apps” and boy was I wrong. I got stuck in every single thing I wanted to write in “shiny way” so to speak. I understand that many of the users come from handling big databases or some sort of backend jobs. What about us “the full stack devs” though ? You know …
I did not understand why I had to layout the page with function calls. Can I just put divs ? Two way binding is called the “reactive” way and thats fine but it fires even when I have a submit button in a “form” … I did not see a “form” function in shiny btw. The way I had to wait for it is that I had to put an if statement in my server file (think of it as the controller) to which it said if submit is false, return … Thats … just … feels unnecessary.
As I said, I am very new to it and I am learning so the lack of experience is the biggest source of my frustration. Shiny function calls does not come as naturally as putting a div 6 wide and pulled 3 to the right to center. Code is on my github repository if you want to check it out. Here is a link to the actual app
Although it has been quite a journey even for a simple app, I realize this is my first time and it will get better in time. Things that felt rather frustrating will become muscle memory. I am happy about my first shiny based app. I can not wait to do more apps to see how deep the rabbit hole I can go. Now that I am nearing my specialization, I will soon have more time to update this blog with the stuff I have learned and trust me … it is plenty 🙂