I’ve written the first few posts in s tutorial set for programming on the Roku. It’s not targeted at programmers with enough experience to pick up what they see in the SDK examples easily, but instead at those that are a little lost as to where to start. Following the tutorials should result in a better understanding of what BrightScript is capable of, and how to start your own channel from scratch.
I’ll update the list here as I complete more. In the meantime, feel free to comment on and provide corrections either here or on the blog. I’ll update the posts (and provide change logs at the end of the post with credit) for any changes made.
Additionally, I’ll compile a list of other tutorials found:
Very nice. It was simple and to the point, easy enough for anyone to follow and grasp that has never seen programming language before. I know that there are varying opinions on starting with a roimagecanvas but I’m eager to see where you take it. Great work
Yeah, I truly understand the reasoning behind starting with a different component, but I find it much easier to use the ImageCanvas as a general purpose component to lay some foundation concepts with. I’m sure I’ll throw some other components in there on top later to show the stacking of visible components.
I’m working on Part 3 right now, which explains Associative arrays and comments. Part 4 will be regular arrays and a for loop. Part 5 will most likely be explaining message ports and using wait in an event loop. Part 6 might be layering some dialog boxes or something.
Still not convinced roImageCanvas is the right place to start (and my eyes really don’t like white text on black/gray), but nice and effective tutorial!
Thanks! mm, maybe I should switch the default font color to Tan4. That’s my favorite dark terminal font color. Then again, that may not have been your point…
I like the dark background and absolutely hate white/light backgrounds (they truly give me a headache). As for roImageCanvas, I agree that it’s a great component for teaching BrightScript which is probably the first step for learning how to program on the Roku. I also see the point that it’s not the best component for learning how to program an actual channel since so many channels don’t even use it. Either way, great job!
Well, I don’t think the image canvas is the best place to start, however, it is perhaps the most FUN place! roPosterScreen is the most practical place to start, but on the other hand, getting image canvas working is perhaps the most difficult thing to learn, so if you can lay that out, it might be very helpful to those who want to work with it.
Yeah, other components are much more useful for building the average channel, but that’s because they do a lot of the work for you. But since they do, they are somewhat limited in how you can use them. I wanted to pick a component that I could stick with and continue to use for most if not all the tutorials, and just throw extra components in as needed. Some of the more complex components would have fit the bill, but they have their own specific complications. The ImageCanvas is unique in my mind because it is a very simple component (see tutorial part 1), but can be used in very complex ways (e.g. KidPaint).
“kbenson” wrote:
Yeah, other components are much more useful for building the average channel, but that’s because they do a lot of the work for you. But since they do, they are somewhat limited in how you can use them. I wanted to pick a component that I could stick with and continue to use for most if not all the tutorials, and just throw extra components in as needed. Some of the more complex components would have fit the bill, but they have their own specific complications. The ImageCanvas is unique in my mind because it is a very simple component (see tutorial part 1), but can be used in very complex ways (e.g. KidPaint).
I think the important distinction is in the fact that you’re writing BrightScript programming tutorials, rather than Roku channel development tutorials. I just think you need to be clear about that, possibly by stating that in your intro, otherwise new developers may not realize that most of the standard components do all of the (non-graphical) UI work for you. 90% of new Roku channel developers will want to use the built-in components to develop their channels, rather than the image canvas.
I think the confusion may be in the fact that you’re writing BrightScript programming tutorials, rather than Roku channel development tutorials. I just think you need to be clear about that, possibly by stating that in your intro, otherwise new developers may not realize that most of the standard components do all of the (non-graphical) UI work for you. 90% of new Roku channel developers will want to use the built-in components to develop their channels, rather than the image canvas.
Yeah, I sort of cover that in the second paragraph of the first tutorial:
This isn’t intended for those intending to just take an example channel (of which there are many in the SDK) and alter it, but for those struggling with the core concepts of the language, or that have trouble following what’s happening in the examples provided.
Also, I’m not planning to limit the tutorials to imageCanvas, just to use it as a convenient base to come back to. The idea is to have something to point at for people that say they don’t understand what’s going on in an example channel because they don’t quite understand the concepts of BrightScript itself yet. I think it makes sense to end with an example that uses roImageCanvas, roVideoPlayer, roParagraphScreen, and another component or two all mixed in to make a channel that can play a video. The hope is that by that point absolutely everything used in the code will have been explained to some degree in a previous tutorial part.
I would happily accept suggestions or contributions, if anyone wants to help.
“grim107” wrote:
I have absolutely no background in any programming of any kind. Will this tutorial be able to help me, or should I first learn basic?
That depends. They very well may suffice for some people with no programming experience, but it would depend on the person and how much exposure they had to related concepts. The biggest problem I see is that I don’t cover some basic concepts, but a little googlng and wikipedia browsing may be enough.
The tutorials so far are extremely short, so you are only out a few minutes if it just isn’t sufficient for you.
Thanks so much for this. I played around with the SDK when it was first released, but ended up mostly just modifying examples because I didn’t have a very good understanding of how to read/write Brightscript. I’m not a programmer, but I’ve written macros in VBA (excel), used to program in BASIC as a kid, and have some basic PHP skills.
I’ll check it out and try to offer a perspective from someone trying to learn.
Just a little constructive criticism here, because I do like what you are doing.
The technical writer in me would really like to see bullet points, steps, and different font variations for calling out command line input. Your first and third articles were good about that with the code highlighting, the second article was a bit too paragraph focused for me to follow well as a set of instructions. Some screenshots and illustrations would be really great too to help follow along.
“RyanMarquiste” wrote:
Just a little constructive criticism here, because I do like what you are doing.
The technical writer in me would really like to see bullet points, steps, and different font variations for calling out command line input. Your first and third articles were good about that with the code highlighting, the second article was a bit too paragraph focused for me to follow well as a set of instructions. Some screenshots and illustrations would be really great too to help follow along.
Yeah, I’m aware of that. The second article is a little different than the others, as it’s really just a loose set of instructions for how to zip and upload, and I wasn’t sure the best way to contextualize specifics. If you have a good example of how to enhance the second tutorial, I’d be happy to incorporate the changes.
So I just reviewed Part 2 again, and yes, it was horrible. I’m not sure if some older draft version was published, or I was just really tired, but it was missing vital information (such as the button sequence to enter developer mode) and was generally not well formatted, as mentioned. I’ve rewritten some portions, and reformatted all of it. Please let me know if it’s easier to follow now.