aiShare Your Requirements
Akhalesh Kumar Oodles

Akhalesh Kumar (Frontend-Associate Consultant L2- Development)

Experience: 2+ yrs

Akhalesh stands out as an accomplished Frontend Developer, specializing in ReactJs technology. His expertise spans various web technologies, including JavaScript, HTML, CSS, Bootstrap, NodeJs, Express, SQL, Redux, and Tailwind. Driven by a profound passion for his craft, he excels in navigating complex challenges and maintains an unwavering commitment to continuous learning and personal growth in his professional journey.

Akhalesh Kumar Oodles
Akhalesh Kumar
(Associate Consultant L2- Development)

Akhalesh stands out as an accomplished Frontend Developer, specializing in ReactJs technology. His expertise spans various web technologies, including JavaScript, HTML, CSS, Bootstrap, NodeJs, Express, SQL, Redux, and Tailwind. Driven by a profound passion for his craft, he excels in navigating complex challenges and maintains an unwavering commitment to continuous learning and personal growth in his professional journey.

LanguageLanguages

DotENGLISH

Conversational

Dothindi

Fluent

SkillsSkills

DotRoku Advertising Framework (RAF)

60%

DotReactJS

80%

DotRoku TV App

100%

DotSwift

60%

DotJavascript

80%

DotRoku SDK

60%

DotHTML, CSS

100%

DotTV App

80%

DotBrightscript

60%

DotNode Js

60%

DotDRM

60%
ExpWork Experience / Trainings / Internship

Dec 2023-Present

Assistant Consultant - Frontend Development

Gurgaon


Oodles Technologies

Gurgaon

Dec 2023-Present

EducationEducation

2021-2023

Dot

Galgotias University

MCA-Computer Science

Top Blog Posts
BrightScript Introduction to BrightScriptBrightScript is a scripting language specifically designed for developing applications on the Roku platform. It is a dynamically typed language, meaning you don't have to declare variable types explicitly. BrightScript is similar to Visual Basic and Python in syntax but is optimized for media streaming applications.If you're planning to build a Roku channel or develop applications that run on Roku devices, mastering BrightScript is essential. This blog provides an overview of the language, its key features, and how you can get started with BrightScript development.Key Features of BrightScript1. Dynamically TypedBrightScript does not require variable types to be declared explicitly, making it flexible and easy to use.2. Interpreted LanguageIt is an interpreted language, meaning code is executed line by line, making debugging easier compared to compiled languages.3. Optimized for Streaming ApplicationsBrightScript is designed specifically for Roku, offering built-in support for video playback, UI rendering, and remote control interaction.4. Object-Oriented ApproachAlthough BrightScript is not a fully object-oriented language, it supports objects, associative arrays, and component-based development.5. Extensive Roku-Specific LibrariesIt provides a rich set of APIs and components to handle UI, networking, video playback, and remote input.Setting Up a BrightScript Development EnvironmentTo start developing with BrightScript, follow these steps:1. Install Roku SDK and Developer ToolsSet up a Roku developer accountEnable Developer Mode on your Roku deviceInstall the BrightScript debugger (telnet-based console) and Roku's Development Application Installer2. Use a Code EditorYou can write BrightScript code in any text editor, but Visual Studio Code with the BrightScript extension is highly recommended.3. Deploy and TestPackage your application using a ZIP file and deploy it via the Roku Developer Mode interfaceDebug using the BrightScript Debugger (BShell) to catch errors and test functionalitiesBasic Syntax of BrightScriptHere's a simple BrightScript script to display a message on the Roku screen:sub Main() print "Hello, Roku Developer!" end subVariables and Data TypesBrightScript supports several data types, including:Integer: x = 10Float: y = 10.5String: name = "Roku"Boolean: flag = trueAssociative Arrays (similar to dictionaries in Python)person = {name: "John", age: 30} print person.name ' Output: JohnWorking with Roku UI ComponentsBrightScript provides SceneGraph, a declarative XML-based UI framework to create interactive Roku applications. A basic example of a Roku SceneGraph component:<component name="MainScene" extends="Scene"> <script type="text/brightscript" uri="pkg:/components/MainScene.brs"/> </component>This component acts as the main scene in a Roku channel.Making API Calls in BrightScriptRoku applications often fetch data from APIs. You can use the roUrlTransfer object to make HTTP requests:url = CreateObject("roUrlTransfer") url.SetUrl("https://api.example.com/data") response = url.GetToString() print responseDebugging BrightScript CodeDebugging is crucial in development. Roku provides a BrightScript Debugger (BShell) that allows developers to:Print debug messages using printCheck variable valuesStep through code executionYou can access the debugger by connecting to your Roku device via telnet:telnet <roku-ip> 8085Best Practices for BrightScript DevelopmentUse Proper Logging: Print debug messages to troubleshoot issues efficiently.Optimize API Calls: Minimize network requests to enhance performance.Follow Roku UI Guidelines: Use SceneGraph components effectively to create smooth user interfaces.Handle Errors Gracefully: Implement error handling to prevent application crashes.ConclusionBrightScript is a powerful scripting language designed exclusively for Roku application development. Whether you're building a simple streaming app or a complex channel with advanced UI, learning BrightScript is a must for Roku developers.By mastering its syntax, utilizing SceneGraph components, and following best practices, you can create high-quality applications for Roku devices. Start coding today and bring your Roku app ideas to life!
Category: Digital Media Solutions
Deep Linking in Roku Channels Deep Linking in Roku ChannelsDeep linking enables direct navigation to specific content within your Roku channel. For example, a user searching for a movie on Roku's search interface can launch that movie directly in your channel, bypassing the home screen.To implement deep linking, your channel must:-1. Recognize deep link parameters (like contentId and mediaType).2. Validate and handle these parameters.3. Present the requested content or gracefully handle errors if the content is unavailable.Step 1: Enable Deep Linking in the Manifest File:-The first step is to enable deep linking in your channel's manifest file. Add the following line:enable_deeplinking=trueStep 2: Plan Your Deep Linking Parameters:-Define the parameters your channel will handle. Common parameters include:1. contentId: A unique identifier for the content.2. mediaType: The type of content, such as movie, series, episode, econtentId=12345mediaType=movieStep 3: Handle Deep Link Parameters in CodeDeep linking parameters are passed to the main() function of your BrightScript application. Use the m.top.getLaunchParams() method to retrieve these parameters.sub main()' Retrieve deep link parametersparams = m.top.getLaunchParams()contentId = params.lookup("contentId", invalid)mediaType = params.lookup("mediaType", invalid)if contentId <> invalid and mediaType <> invalid' Handle deep linking logichandleDeepLink(contentId, mediaType)else' Launch default home screenshowHomeScreen()end ifend subStep 4: Implement the Deep Linking LogicCreate a function to process the deep link parameters and present the requested content.sub handleDeepLink(contentId as String, mediaType as String)if mediaType = "movie"' Fetch movie details using contentIdmovieDetails = fetchMovieDetails(contentId)if movieDetails <> invalid' Display the movieshowMovieScreen(movieDetails)else' Handle invalid contentIdshowErrorScreen("Content not found.")end ifelse' Handle unsupported media typesshowErrorScreen("Unsupported media type.")end ifend subStep 5: Fetch and Validate ContentEnsure the contentId is valid and corresponds to an available item in your database or API. Here's an example function to fetch movie details:function fetchMovieDetails(contentId as String) as Object' Simulate API or database lookupmovieDatabase = {"12345": { title: "Example Movie", description: "An example movie." },"67890": { title: "Another Movie", description: "Another example." }}return movieDatabase.lookup(contentId, invalid)end functionStep 6: Submit for CertificationRoku requires proper deep linking functionality for certification. Ensure:1.Deep links open the correct content.2.Unsupported or invalid parameters are handled gracefully.3.Content is consistent with search metadata.Conclusion:-Deep linking in Roku channels provides users with a seamless way to access specific content directly. By following the steps outlined in this guide, you can implement deep linking effectively, enhance user experience, and meet Roku's certification requirements. Happy coding!
Category: Digital Media Solutions
Building an Electronic Program Guide (EPG) on Roku with BrightScript Building an Electronic Program Guide (EPG) on Roku with BrightScriptAn Electronic Program Guide (EPG) is a cornerstone of streaming applications, enabling users to explore channel schedules and program details in an organized, interactive way. On Roku, creating an EPG involves leveraging BrightScript and its powerful TimeGrid node. Here, we'll walk you through building an EPG for your Roku app while addressing layout, data handling, and common challenges.Understanding the Layout of an EPGBefore diving into code, let's understand the basic layout of an EPG:1.Channel List:-Displays channel numbers or logos for easy identification.Programs:-2.Shows program details, including titles and scheduled start times.3.Time Slots:-Each time slot spans 30 minutes, giving users a clear view of program schedules.How to Display Data on the User InterfaceThe TimeGrid node in BrightScript is the backbone of the EPG layout. Below is a sample function that sets up the TimeGrid with essential properties and loads data dynamically.sub Home_screenTimegridData()m.timeGrid = m.top.findNode("timeGrid")' Set up TimeGrid propertiesm.timeGrid.numRows = 0m.timeGrid.maxDays = 2m.timeGrid.translation = [95, 580]m.timeGrid.contentStartTime = GetCurrentTimeRounded()m.timeGrid.duration = 7200 ' Duration in seconds (2 hours)m.timeGrid.channelNoDataText = "Loading..."m.timeGrid.nowBarBlendColor = "0xFFFFFF"m.timeGrid.programTitleFocusedColor = "#FFFFFF"m.timeGrid.programTitleFont = getFont(30, "pkg:/fonts/HelveticaNeueMedium.ttf")' Assign images for custom stylingm.timeGrid.nowBarBitmapUri = "pkg:/images/epg_timebar.png"m.timeGrid.focusBitmapUri = "pkg:/images/epg_program_focus.png"m.timeGrid.programBackgroundBitmapUri = "pkg:/images/epg_program.png"' Observe user interactionsm.timeGrid.observeField("programSelected", "epgProgramSelected")m.timeGrid.observeField("programFocused", "epgProgramFocused")m.timeGrid.observeField("channelFocused", "epgChannelFocused")end subfunction GetCurrentTimeRounded() as IntegercurrentTime = CreateObject("roDateTime")t = currentTime.AsSeconds()remainder = t mod (30 * 60)return t - remainder ' Round to the nearest 30-minute markend functionChallenges & Solutions1.Getting TMS ID and IndexIt's crucial to correctly fetch the program details, including the TMS ID (unique identifier for TV programs). One effective way is:m.notdatafound = m.epg_channelList.data[m.channelIndex].program[m.programIndex]if m.notdatafound <> invalidm.firstElementData = m.epg_channelList.data[m.channelIndex].program[m.programIndex].TMSIdendif2. set Utc Time.timestamp=item.startnum = timestampdateTest = CreateObject("roDateTime")' dateTest.AsSeconds(num)dateTest.FromSeconds(num)dateTest.ToLocalTime()? dateTest.asTimeStringLoc("short"),"epochtime21345"Conclusion:-Creating an EPG on Roku using BrightScript and nodes like TimeGrid is both rewarding and challenging. By understanding the layout, focusing on smooth data handling, and addressing common hurdles, you can deliver a user-friendly guide that elevates your streaming app's functionality.
Category: Digital Media Solutions