The Thing About Being a Dad Is That It’s Not About You
I figured this out later than I should have.
For most of my life, the scorecard was pretty simple. Am I getting better at my craft? Am I building something? Is the work moving forward? I could measure all of it. I knew where I stood.
Then I had a kid and the scorecard disappeared.
Nothing I built mattered the same way. Not because it mattered less — if anything the stakes got higher — but because the point shifted. I wasn’t the main character anymore. I’m not sure I ever was, but fatherhood makes that hard to ignore.
The shortcut I keep coming back to is this: almost everything that used to feel urgent isn’t.
The email can wait. The project will still be there. The thing you’re stressed about at 11pm has a 90% chance of being irrelevant by Thursday. Kids don’t care about your deadlines. They care about whether you showed up, whether you were actually there when you were there, whether you laughed at the thing they thought was funny even when you’d heard it four times.
That’s the whole job. Everything else is logistics.
I work in a world that rewards obsession. The more you know, the faster you move, the more you build — the better. I genuinely love that. I’m not complaining about it. But it trains you to optimize for the wrong things when you get home.
You can’t optimize fatherhood. There’s no dashboard. No conversion rate. No metric that tells you you’re doing it right.
What you have is presence or you don’t. And if you don’t, your kid notices before you do.
The irony is that becoming a dad made me better at work too. Not because I got more efficient, though that happened. But because I stopped caring about the stuff that didn’t matter, and there’s a lot of stuff at work that doesn’t matter.
When you’ve got someone at home who needs the real version of you — not the productive version, not the impressive version, just you — it recalibrates everything.
I build systems now partly because I want more time. More time for the work I actually care about, sure. But mostly more time to be somewhere else when it counts.
The shortcuts I’m most interested in these days aren’t the ones that make me more money. They’re the ones that give me more Tuesday afternoons.
That’s what I’m building toward. I’m not sure I’ve figured it out yet.
I have been drawing the same character since I was a kid.
Round head. Big dark eyes. No mouth. A little red heart on his chest.
Last week I turned him into an AI agent.
Not a chatbot. Not an avatar. A working piece of a system I have been building. He is part of the machine. The part with a face.
I spent hours trying to generate realistic videos of myself. AI kept blocking it — deepfake territory. And it looked whack. So I stopped fighting it and went back to the drawing I had been making for 20 years.
A cartoon character that can say whatever I want. No uncanny valley. No lip sync problem. Just a glossy white figure in a data center with a glowing heart.
He is more me than the realistic version would have been.
The system that runs him is called OpenClaw. Sub-agents that write, research, generate video, and publish. Each one has a job.
This post was drafted by that system. The intro video too.
That is the shortcut. Not the tools — the system. Where building it once means it keeps working.
I came up in skateboarding and streetwear. Moved into web dev, email marketing, DTC health and wellness. The work kept getting more complex. The teams stayed small.
AI did not change what I was trying to do. It changed what was possible with one person.
The character has been in my sketchbook for two decades. He just needed the right job.
Saturday morning, coffee, phone on the table. I pointed my camera at the breakfast dishes and thought: what if AI could tell me this scene should be reimagined as a Soviet propaganda poster?
By Sunday night I had an app that does exactly that.
It’s called AIery. You point your camera at something — a kitchen, a parking lot, your dog — and the AI reads the scene and suggests a handful of absurd transformations. Things like “chairs growing faces” or “ancient ruins reclaimed by jungle.” Hold the button, it generates. That’s the whole thing.
The idea isn’t new. But I built it in a weekend. That part’s different.
Here’s what changed: I didn’t build it alone.
I spun up a team of AI agents and gave them actual job titles. Not because it was necessary — it’s not — but because something clicked differently when I treated them like people who owned something.
Wren handled debugging. Pixel owned the UI. Arch ran the backend. Reed wrote the prompts. Maven was PM — she ran a status loop every 30 minutes to check for blockers. Marcus was CMO. He wrote a Lensa-style viral playbook before I’d shipped a single line of code.
And then there was Vault. Vault is finance. On day two, Vault flagged a $0.29/month margin problem I never would have caught. Not because the amount matters at zero users — it doesn’t — but because that’s the kind of thing that quietly compounds when you’re not watching.
I didn’t name them to be cute. I named them because it changed how I interacted with them. When you ask “an AI” to review your pricing, you get a generic answer. When you ask your CFO to review your pricing, you get specificity.
The first real decision was the image model.
I tested Flux and Gemini side by side. Flux was cheaper. Flux was also, to use a precise technical term, shit. The outputs looked like someone described a dream to a toddler. Gemini’s outputs were actually compelling — the kind of thing you’d screenshot and send to someone. So I stayed with Gemini and built the pricing around it.
The second real decision was where to take payments.
Apple IAP looked convenient until I looked at the actual numbers. At 1,000 subscribers, Apple takes you to $9.09/month per user net. Web subscriptions through Stripe get you to $12.61. That’s a $3,500/month difference at a user count I haven’t hit yet. So the app routes you to a web paywall at aiery.app. It’s slightly more friction. It’s also $42,000/year in margin at scale.
But the thing I spent the most time on wasn’t the camera. It wasn’t the payments. It wasn’t the UI.
It was suggestions.ts.
That file is where the AI reads a scene and decides what to suggest. And it turns out that’s everything. “Ancient ruins” is a boring suggestion. “Chairs slowly growing human faces” hits different. The gap between those two outputs isn’t a feature — it’s a prompt. And the prompt is the actual product.
Reed and I rewrote that file more times than I rewrote anything else in the codebase. The quality of the suggestions is why someone uses the app twice instead of once. I didn’t fully understand that until I was staring at two outputs from the same scene and only one made me laugh.
There are 5 free generations. Lifetime. Not per day, not per week — 5, total. Then the paywall.
That number was deliberate. It’s enough to understand what the app does. It’s not enough to keep using it without paying. I’ve seen apps give you 30 free credits and then wonder why conversion is terrible. People use all 30, feel satisfied, and leave. Five is a taste.
Marcus wrote a 90-day launch plan before I asked for it. It included growth loops, influencer targeting, and a kill criteria section — specific metrics for when to pull the plug and stop paying for server costs.
That part I appreciated most. Most side projects don’t die — they just drift. Someone decides to keep paying $40/month “for a few more months” indefinitely, until the credit card finally expires and they feel relieved. Having a number to hit before a date makes the decision automatic.
Mine are set. I’m not going to tell you what they are, because then I’d feel accountable to the internet, and I’m not sure I want that.
AIery is live. aiery.app. Five free generations and then you decide.
I don’t know if it’ll work. I know it took a weekend. That felt worth something regardless.
Scrolling 𝕏, I saw a new AI called lovable make an app. I had to try it.
If you’re like me, you have ideas for software tools that aren’t available, and dream of one day learning how to code and making it come to life.
But you paid for a course, you got overwhelmed by a ton coding language, you hung in there for a month or so, deployed a basic app (readysketch.com), got frustrated hired a coder outside of the U.S. to finish it, and eventually quit because you we’re losing money.
Quitting is super lame, but sometimes you got to know which lane you’re in. I can’t do everything, even though I technically know how to do most things.
You need to focus on what you’re good at, and become great at it.
It’s a website where you can ideas for apps to life with little code knowledge.
Get front-end previews as you chat with the AI.
Connect databases, deploy to Github and even make it live on the web all from one dashboard.
You can start for free, for a certain limit of messages with the GPT but in that first few messages you get a fully functioning app that would have cost you thousands of dollars in development costs.
So, you find out soon that paying $20 a month for lovable.dev is a steal.
I wonder what is it about $19.99 that ChatGPT, Claude, Lovable, MidJourney and every other AI is on about.
Ladies and gentlemen, taxed af. My first project with loveable.
My first app with lovable
I’m wildly impressed by lovable’s understanding of what I wanted and how it changed code, and implemented it so quickly.
At times it was faster than just a standard ChatGPT request.
I really wanted lovable to help me code an app for Shopify, but at present, it doesn’t work with Shopify’s CLI.
…so I started with Cursor AI to help me get a ‘Save 10% with Bitcoin payment button’ at checkout. It only got me so far, and I realized I was in over my head, and since a strike.me dev rep told me they already have a bitcoin lightning payment Shopify app I figured I was beating a dead horse.
Although, the save 10% option would be awesome and implementing docs on how small businesses can start putting BTC on their balance sheets would be an excellent service, but until then I figured I’d try something that doesn’t require such technical prowess at the moment.
So, weaving back into what taxedAF is:
Everyone hates paying taxes. I sure do. Especially if you’re self-employed like me.
You should know what you’re going to have to pay your state and the IRS in April, or every quarter as some suggest.
So this is what the app I developed with lovable.dev does:
It breaks down every payment you receive based on your invoices you send out, if you’re smart this will help you find out what to even charge your client, and also what to put away when your client pays up.
It’s an estimation of what you’d likely pay, not an exact. Because obviously, everyones tax bracket is different, how you file, is different (single or married), and everyone’s state/county is different.
But this is a pretty damn close approximation of what you’d owe because I told loveable to include every state (and it’s income tax obligations), what the federal government will charge you, and (news to me) self-employment tax.
God, living in CA with all these taxes you really get f*cked, thus the name I branded it with, taxedAF.
It’s nearly half of my pay check for each invoice that is paid to me.
This is insane.
So, in my infinite wisdom, I decided to save 30% of each pay check I receive to use to pay taxes with later.
With all the tools connected to lovable.dev with netlify for domain hosting, supabase for SQL, and github for deployment I literally did what would normally take months, in one night.
It’s still a work in progress and with loveable’s help I can probably turn this into a stream of income for other self-employed IRS paranoid people like myself.
I could include some knowledge docs, some courses, some banking integration options, export to tax software options, assist with even filing taxes, damn loveable is my full stack developer, you know how much that saves me in costs for something this robust?
Over $100k easily is saved using loveable.
I get it, if you can afford a human full-stack dev, by all means. But for start-ups I’m sorry dev’s your job just got replaced → and eventually mine.
But until then, I’ll use AI tools to help all my clients, and myself.
Because bro it’s nearly 2025, this is America and here we go! 🇺🇸
We all know the system is broken. Government spending is a out of control. There is no accountability. Our tax dollars vanish into bureaucracy. Instead of complaining, let’s discuss a solution—Public Interest.
Transparency and Accountability: Would you participate?
Imagine knowing where your tax dollars go. Public Interest makes this possible. By entering your income, tax info, and spending habits, you can see where your money goes. You get a breakdown of where your taxes go, including public salaries to police, fire fighters, politicians and projects. Simple visuals like pie charts make this easy to understand.
Have questions?
Can’t stand my arrogance? Think I’m a lunatic? Let’s talk.
With Public Interest, you don’t just pay taxes; you engage with your money. By subscribing to a public tax in your area, you can track your debts and income, but also you can earn interest on your taxes while contributing to projects in your area that may effect you.
The Power of Decentralized Finance
Public Interest is about more than transparency. It empowers communities with decentralized finance. Members can contribute what they can afford. Thus, they support local projects while managing their finances. The more you contribute, the more influence and rewards you get.
True Community Engagement
Public Interest offers more than financial tools. Additionally, it can include homeschooling resources. It can let community members propose and vote on local projects. This way, important projects get the funding and attention they need with your vote. A vote that is verifiable on the blockchain.
Accountability Through Technology
By using blockchain technology, Public Interest ensures transparency. Every transaction and vote is secure. As a result, this reduces fraud and corruption. Your money is used well.
The Future of Governance
Public Interest can transform governance. Like Uber nearly replaced taxis, it makes political structures more accountable and efficient. If successful, this model can inspire similar systems worldwide. Therefore, it leads to a more democratic world.
Join in promoting Public Interest.
The system is broken, but Public Interest can fix it. This platform makes governance transparent and accountable. Therefore, it’s about seeing where your money goes and being part of the decision-making process.
Transform the future of governance with Public Interest. It’s our duty to ensure a better future for our children and communities. Let’s make a difference—one vote, one contribution, one community at a time.
Over the past decade bitcoin has had its supporters and its enemies. What does it even do for us? Do you see it as an invisible, fake coin, just a number on the screen?
What does Michael Saylor, who has aggressively been purchasing Bitcoin and now holds $5.6 billion worth, understand about bitcoin? Or what about Blackrocks ETF application? What do these billionaire and trillionaire asset managers find so interesting about bitcoin that has them gobbling up the supply of bitcoin?
If you’re not at all curious and your net worth is under $1 million you are going to lose to inflation.
If you don’t even know what that means, let’s take a step back and let’s ask ourselves how much we even understand about the financial system on the most basic level, interest rates.
Borrowing money with a credit card or for a house is kind of the same. The bank borrows money from the federal reserve to lend to you to make a profit on you not paying it back over time.
Interest charges fluctuate.
When there’s nothing tangible that’s being lent out like gold coins, they print numbers on screens or paper that are attached to an interest rate that charges somebody to issue that money and the fed can rise these rates or lower rates at any time depending on the amount of money in circulation to combat inflation.
Inflation means rising the price of goods to try to balance the amount of money in circulation.
The money in circulation is debt, so to balance the debt rising the price you pay for the goods will go toward paying the bill on that debt.
Imagine the government taking at a credit loan for a trillion dollars. It didn’t exist before, but to help pay the debt on that loan the government makes the costs of everything a little more expensive so that the profits rise and they can make the payments on that loan.
Does that make sense? Lesson over.
Now that you understand that, what is Bitcoin and how can it benefit you?
It’s the first sophisticated monetary system that mathematically can not be fraudulent or printed in any way other than its core mechanism, WORK.
You may hear environmentalists complain about how much energy is needed for bitcoin to reward miners for blocks. Without getting into the weeds of that, have you tried to understand why it uses so much energy, and what does that mean for the production of energy?
Every 4 years it gets more difficult to produce bitcoins, they call these events a halving. Actually 93% of all bitcoin has already been mined, and over the next 120 years 7% of the remaining bitcoin will be mined.
It will cost more and more energy to mine bitcoin because the difficulty to adjustment is made on that 4th year effectively cutting in half the rewards for miners to produce a block (in the blockchain).
An example would be like mining for gold, and you know theres an exact amount under the ground because you can see it on lidar, and the first 4 years there’s only loose soil in the way, the next 4 years, maybe some mulch, then some rock, then some booby traps, then some water caves, then some titanium in the way all the way until the year 2140 when the final amount of gold will be mined after it has grossly gotten more difficult you find yourself wading through lava to get to it and hiring thousands of people to help you reach it.
But in that example when you have mined all the gold you have to store it somewhere like a vault, and if it’s a lot of gold and worth billions you have to install a security system or hire guards. With bitcoin, you can remember 24 words in your head and walk around the world through air ports, countries with a billion dollars worth of value just waiting to be unlocked anywhere.
See, the more energy it takes to produce it is a core variable in what makes it valuable over time. This mechanism is called proof of work and uses the likes of physics to secure its software.
When bitcoin gets passed up by people who don’t bother to understand its beauty in software design, its poetic and liberating behavior it has on preserving wealth, it’s inherit state-less issued monetary policy and unconfiscatable nature I just sigh.
It’s the same feeling I get when I wish everyone could see the reality of humanity that I see. We’re all free people sharing the same identity on a finite planet and we all need love, yet every authority on the planet is preventing you from seeing it this way. Just as they are trying to prevent you from seeing bitcoin as the only transcendental hard monetary asset in the universe (far as we know).
So to conclude my statement on the benefits of bitcoin I will issue you some reading material and podcasts to gain an understanding of it so that you do not miss out on a once in a lifetime flight to a global asset.
Bitcoin White Paper: https://bitcoin.org/bitcoin.pdf – this is written by the infamous Satoshi and if you want to read it there you go.
Finish by watching this long form podcast with Lex Fridman and Michael Saylor. Good luck on your retirement journey. I’ll know what I’ll be buying in my IRA.
Every time I set out to start a new project I go through 3 phases:
Excitement – Thrilled to realize the potential of the new project I can’t wait to get started
Accountability – I take whatever steps I need to get started and make sure I do them right
Exhaustion – I lose steam and come up with whatever reason I can to put it off until later
If you’re like me, once you reach exhaustion you probably feel disappointed in yourself and it makes you question every decision you’ve ever made.
I have only one choice, and that’s to develop discipline. If I could, I would hire someone to tell me to get to work and belittle me for making excuses, but I don’t have the money for that. Instead, I’m going to create that person in my head and every time I find myself slowing down, remember to make that guy scream at me.
Curse of multiple interests
Too Much to Handle
I might have too many things going on to give each of them the attention it deserves. I’ve been like this my entire life, and I’ve always been convinced it’s a flaw but I’m not so certain it is anymore.
I like being able to switch gears in any given day from studying to writing to playing guitar to skating to building websites to drawing to stretching and so on. Should I give priority to just one thing for the majority of the day? Maybe, but I get bored of one thing quick, even if I’m super excited about it.
This blog is something that I know is important. One day I will look back at all my posts and feel like I had contributed my voice in a time where it’s important to have one, but something still holds me back from getting on my laptop and just writing:
Lack of Discipline
In order for me to get in a flow state where I’m writing a blog I need to wait for this inner voice to say, “Hey let’s write about this today.” But sometimes that voice gets drowned out by procrastination and that is an internal conflict.
My work ethic slips away as time passes only to be resuscitated by my guilt of procrastinating. Can I skip that odd mental torture I submit to? Well, if I had discipline I’d be a little more aware of it, and for the sake of bypassing that mental torture, this blog post that I’m writing at this second serves as a reminder to self discipline.
Peaks and valleys
What to Remember
Life is a series of peaks and valleys or waves however you want to picture that. Knowing the excitement of the peak is eventually followed by the low of the valley prepares you for how to behave when you’re either on the peak or in the valley. When I’m on the peak I need to remind myself of the nature of waves, and to work hard while I’m in that flow state. When I’m in the valley, I need to embrace its presence and remember the peak is coming. Am I in a valley right now as I’m writing this? Feels like it, but writing this is helping me find the base of that next peak to climb.
Have any advice for self discipline? Leave a comment below or reach out to me on instagram @kyleknob
So much happened in this year so far that 2020 will forever be remembered as the worst year to date in the 21st century, but I’m not just a pessimist. I’m an optimist too.
I’m hopeful that consciousness is enveloping the generation, as love makes it’s self the only obvious alternative to hate.
I’m hopeful that the truth will rise to the surface and we can understand it and work toward building communities that thrive.
In a world where technology is centralized there is no doubt that its power will be abused. Whether it’s Facebook, Twitter, Google or Amazon or the advent of A.I., the future of centralized technology in the hands of an authoritarian government is not so hopeful.
Censored for your protection
However, the progress blockchain technology has made with Bitcoin leading the way has shown that not only can alternative systems be designed, but they can be implemented and impossible for any government to stop. The creation of DeFi itself is a huge milestone for cryptocurrencies. We are looking at the take over of banking, governing, and voting, all done on a blockchain.
The creation of the tools of the future are at a precipice. On one hand, the centralized entities have complete control of our lives with fear of the virus and their development of a Central Bank Digital Currency.
On the other hand, we have decentralized technology that can offer you exponentially higher annual profits on your savings, a governing system that can do what Uber did to Taxis, and a voting tool for us all to participate simply and fairly.
As much hopelessness as there is in the world surrounding the globalist agenda, the end of cash, the personal taxation of carbon, the closing of businesses, and the lost of jobs and homes, there will always be a silver lining.
What is the silver lining?
Well you can change and do better. We all can do better, and we must if we want to move forward as the United States of America and not the Red and Blue States of America. I trust you’ll be better because now in hindsight, we aren’t doing so good. Swallow your pride, recognize your outrageous ego demons, and be helpful.
It’s not a coincidence that I write about learning computer programming, and think about programming in a traditional sense. Maybe what I’m learning will help me better demonstrate the similarity between programming mobile applications to increase productivity and programming childhoods to be self-conscious consuming adults.
On all sides of the social economic and political spectrums you’ll find acute evidence of bias, ignorance or lack of empathy, yes even you and me. I’m assuming my reader is aware of this already so that I don’t sound outrageous. If you’re thinking to yourself, “I’m not ignorant”, well you’re being ignorant because even the oldest gurus know that they don’t know.
“I am the wisest man alive, for I know one thing, and that is that I know nothing.”
Socrates
Let It Go
I couldn’t wait to grow up, big mistake.
When we’re 3 years old we are free to be as we are. A child who in one minute will experience bliss in a puddle of water will then scream and cry the next minute for getting too wet. We played outside in the grass with nothing more than our imaginations and threw around our toys for no good reason. The point I’m getting at is that when we’re in our parents care, before public schooling, we’re encouraged to express ourselves, laugh, live, & love (if you’re lucky) like that cliche plaque that’s out there being sold for $20.
As soon as we turn 5 or 6 years old kindergarten begins, and so does the degradation of self expression and the institution of conformity. Well, that’s what it seems like now looking back, but when you’re unaware of it as a child or a parent it’s an exciting new adventure into forming social skills, friends, education and well, a test of performance.
Is that a prison or a school? Switch some letters up and change the color of the bus
In my opinion public schooling is like rolling the dice on childhood development. Hope you roll snake eyes, anything else, you could end up with a variety of strange outcomes. I get it though, the system is set up where parents work 9 – 5, so school is like a free day care, and you didn’t turn out so bad right? As the parent, it’s your job to encourage self expression, discipline selfishness, and guide them however you see fit, which is the most important job any human can have, but that all translates into programming. Here’s a good opportunity to compare computer programming to childhood programming, but I’ll let you imagine the similarities.
It’s By Design
Pay close attention to nothing on the T.V.
There’s a reason it’s called Television Programming. We use to refer to the TV Guide as the program before the streaming boom, even before my time. It’s no mistake that today, kids are glued to screens, waiting at bus stops for a school whose art and music program is a thing of the past, and punishes them for “acting out.”
Whether we acknowledge the education system as a design for productivity or a design for conformity there remains one constant: it’s illegal to not show up.
“Typically, children must start school by the age of six and remain enrolled until they are at least 16. These laws were put in place not only to improve literacy rates but also to discourage the widespread child labor practices of the 19th and early 20th centuries.”
Fast forward to your twenties after high school, maybe you’ve taken psychedelics or haven’t been brave enough yet, but you at least tried to smoke weed. Maybe you’re well read and had studied philosophy and had begun to strip away some of the layers of institutionalism you had previously followed without question.
Once you begin to unravel the fabric of society, the hierarchy, the political system, and the corporate structures, you get into the habit of peeling back the layers or falling down the rabbit hole.”Where’s this rabbit going?”, “What’s the reason for this law?”, “What’s the reason for money?”, “What’s the point of life?” All these questions allow you to seek answers, and they’re important to the deprogramming of childhood trauma you had no choice but to interfere with. Whether you want to admit it as traumatic or just unfortunate events is up to you, but whether you realize it or not, your childhood is something you still carry around with you today, good or bad.
“They hate you if you’re clever and they despise a fool.”
Whether you’re scared to accept truth that’s uncomfortable for you to handle or ignore evidence to remain blissfully ignorant is your choice. I love that cliche, “you can take a horse to water but you can’t make him drink it.” Sometimes cliches are the best way to make a point, and the point is, do us a favor, drink the water. You might feel feelings you’d rather avoid, but you’ll be aware of the truth.
Bill of Right or Temporary Privileges?
They Don’t Care About Us
“I’m tired of bein’ the victim of hate. You’re rippin’ me of my pride, oh, for God’s sake. I look to heaven to fulfill this prophecy”
Sometimes a song is the best way to get a point across too. The message is clear through out all music and that’s why I’m working on a collection of artists that have been an archetype of truth called “Proof of Truth.” It’s important that we remember these truths so I’m gathering all my favorite works and quotes to share with you, but for now, go listen to that Michael Jackson song.
I’ll end this programming article with a glimmer of hope. Even though 100% of the people around you are programmed, not all of that programming is bad, and there are ways to reprogram our minds. For instance, meditation is a great practice to reprogram our trigger mechanisms, but if you want a shortcut, take some mushrooms with an experienced friend in a safe setting. The reprogramming experiments you do on your own mind can be dangerous, so don’t go blaming this author on your newly found psychosis, take it easy, breathe and be nice to people.
If you want to chime in please feel free, leave a comment below or reach out to me on Instagram @kyleknob
I created my very first app with my understanding of Classes, Methods, & Conditionals in Dart called Destini. I did not create this by scratch however, I completed a challenge from the course I’ve been taking with Angela Yu on Udemy. The objective is to create a choose your own adventure story. Depending on the choices the user makes as they read along with the story, the story data that appears on the screen changes along with it.
Recalling information you learn from tutorials and utilizing them in real life is difficult to say the least, but not impossible.
I took this step by step and eventually got through it, checking in on the solutions as I went along to see if I was getting it right. I’m pretty sure that is practically how every app gets done, Googling things to get the solutions from stackoverflow.com or something, so I’m not being hard on myself for not recalling everything I’ve learned.
First of all I’ll run through the steps so that I can better understand what I created, because even though I followed these steps I need to better clarify what it is I’m actually doing. If you’re a new reader I’ll tell you now that I’m learning how to program so that I can build out apps of my own and I’m writing out what I’m learning in blog posts so that I better understand what it is that I’m learning.
Step 1: Download the project file using version control. That’s where you copy and paste the GitHub repository into Android Studio and it copies everything onto your computer so that you can access all the files when you ‘Get Dependencies’ when you load the project from your system.
The project file had set up the Scaffold, but I had to put in the background image. Which after looking it up was not hard.
You use the property decoration: and declare BoxDecoration( image: DecorationImage( and finally image: AssetImage(‘images/filename.png, fit:BoxFit.cover.
After setting that up I needed to create a story.dart file with a class that held some objects. That class is called Story:
class Story { // creation of class
String storyTitle; // creating object variable holding a String called storyTitle
String choice1; // creating object variable string for the users first choice called choice1
String choice2; // creating object variable for the users second choice called choice2
Story({this.storyTitle, this.choice1, this.choice2}){ // creating a method that holds the objects above using this.storyTitle refers to the above variables
storyTitle = storyTitle; // the method declares storyTitle to equal the variable passed in the input of the method
choice1 = choice1; // the method declares choice1 to equal the variable passed in the input of the method
choice2 = choice2; // the method declares choice2 to equal the variable passed in the input of the method
}
}
This is sort of confusing at first glance so I tried to break it down with a // comment next to each object and method to explain it as best as I could. I am going to import this story.dart file into the story_brain.dart file I’m going to create next. You will see how it communicates with this other file next. I practically created this to be like the working mechanism that will pass data into the main.dart file appropriately, you’ll see.
Now let’s take a look at the final story_brain.dart file, since I write these blogs after I’m done the challenge it’s easier to just explain to you what I can. Read the // comments next to the emboldened text to follow along.
import ‘story.dart’; // importing story.dart or the story class to work wit the data.
class StoryBrain { // creating the BRAIN of the app, where all the data is stored.
int _storyNumber = 0; // this variable will load the first story in storyData (below) in the List on the screen, and then be updated as the user chooses.
List<Story> _storyData = [ // creating a List with a <widget> referencing the <Story> class and calling it _storydata, this holds all my data for the app that will load on the screen
Story(
storyTitle:// using storyTitle from the Story class we created in story.dart
‘Your car has blown a tire on a winding road in the middle of nowhere with no cell phone reception. You decide to hitchhike. A rusty pickup truck rumbles to a stop next to you. A man with a wide brimmed hat with soulless eyes opens the passenger door for you and asks: “Need a ride, boy?”.’,
choice1: ‘I\’ll hop in. Thanks for the help!’, // using choice1 from the Story class we created in story.dart
choice2: ‘Better ask him if he\’s a murderer first.’), // using choice2 from the Story class we created in story.dart
Story(
storyTitle: ‘He nods slowly, unphased by the question.’,
choice1: ‘At least he\’s honest. I\’ll climb in.’,
choice2: ‘Wait, I know how to change a tire.’),
Story(
storyTitle:
‘As you begin to drive, the stranger starts talking about his relationship with his mother. He gets angrier and angrier by the minute. He asks you to open the glovebox. Inside you find a bloody knife, two severed fingers, and a cassette tape of Elton John. He reaches for the glove box.’,
choice1: ‘I love Elton John! Hand him the cassette tape.’,
choice2: ‘It\’s him or me! You take the knife and stab him.’),
Story(
storyTitle:
‘What? Such a cop out! Did you know traffic accidents are the second leading cause of accidental death for most adult age groups?’,
choice1: ‘Restart’,
choice2: ”),
Story(
storyTitle:
‘As you smash through the guardrail and careen towards the jagged rocks below you reflect on the dubious wisdom of stabbing someone while they are driving a car you are in.’,
choice1: ‘Restart’,
choice2: ”),
Story(
storyTitle:
‘You bond with the murderer while crooning verses of “Can you feel the love tonight”. He drops you off at the next town. Before you go he asks you if you know any good places to dump bodies. You reply: “Try the pier”.’,
choice1: ‘Restart’,
choice2: ”)
];
String getStory(){ // this function is called in main.dart to load the next storyTitle in the List above.
return _storyData[_storyNumber].storyTitle;
}
String getChoice1() { // this function is called in main.dart to load the next choice1 in the List above.
return _storyData[_storyNumber].choice1;
}
String getChoice2(){ // this function is called in main.dart to load the next choice2 in the List above.
return _storyData[_storyNumber].choice2;
}
void nextStory({int choiceNumber}){ // this function determines what story loads in the _storydata List. Passing {int choiceNumber} into the function allows us to pass an integer into the function when calling it. Like so: storyBrain.nextStory(choiceNumber: 2);
This tells the function in main.dart what choice has been selected, and what to do if we pass a 1 or a 2 into that choiceNumber variable
if (choiceNumber == 1 && _storyNumber == 0) {
_storyNumber = 2; // if user chooses choice 1 and it’s _storyNumber is 0 then change _storyNumber to 2
_storyNumber = 2; // depending on what user choice above and ran either of those conditional statements do the following and then the following else if statements that follow the story line..
return true; // if _story number is equal to 0 or 1 or 2 return true, or keep the button visible
} else {
return false; // if it’s not less then 3 then keep the button
}
}
void restart(){ // set the storyNumber back to the beginning by loading the 0 index of the List
_storyNumber = 0;
}
}
This is what my completed story_brain.dart file looks like and the explanations of how each of these corresponds to the main.dart file that displays the widget trees of the app.
Screenshot of Destini App
Let’s take a look at main.dart to see what’s going on in there. I can not stress enough how important this is for me to write about, I’m having a moment of clarity right now.
Here is main.dart:
Again, follow the // comments to understand how I’m breaking this apart for you to understand
// importing the story class from story_brain and story.dart
void main() => runApp(Destini());
// main return your runApp function and input my app Destini()
class Destini extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark(),// this tells the app what color it should be
home: StoryPage(),// this is going to hold the part of our app that a will change appearance in the StatefulWidget below
);
}
}
StoryBrain storyBrain = StoryBrain();
// this can be confusing, but we’re calling our class with the first StoryBrain and we are creating an object in our main.dart called storyBrain and its going to hold or equal the StoryBrain(); class data. This tells the main.dart to interact with all objects in that class in the file story_brain.dart
child: SafeArea( // keep things within the SafeArea
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
flex: 12,
child: Center(
child: Text(
storyBrain.getStory(), // this loads the story into the center of the screen, notice it’s within a widget tree starting with the SafeArea, a Column, and the children in that column within an Expanded, that holds centered text.
style: TextStyle( // this is changing the style of the text loaded from getStory();
fontSize: 25.0,
),
),
),
),
Expanded( // beginning of our button
flex: 2, // I need to understand how flex works a bit better, sorry.
child: FlatButton( // our first button that tells us the user chose choice1
onPressed: () { // button action
setState(() {// this allows the button text to change, gotta use setState if something is changing on the button
storyBrain.nextStory(choiceNumber: 1); // calling storyBrain, run the nextStory method we made, and so you know which choice it was they made, we input (choiceNumber: 1);
});
},
color: Colors.red, // color of the button
child: Text(
storyBrain.getChoice1(), // calls the method in storyBrain to getChoice1 String data.
style: TextStyle(
fontSize: 20.0,
),
),
),
),
SizedBox(
height: 20.0, // this is the spacing between the two buttons
),
Expanded( // button 2
flex: 2
child: Visibility( we use this to hide the button on the last storyTitle
visible: storyBrain.buttonShouldBeVisible(), // we created a function in storyBrain to check to see if the button should be visible or not
child: FlatButton(
onPressed: () {
setState(() {
storyBrain.nextStory(choiceNumber: 2); // I’m calling it to load the nextStory based on the choice made by the user with the input (choiceNumber: 2)
});
},
color: Colors.blue,
child: Text(
storyBrain.getChoice2(), // this get’s the String data for choice2
style: TextStyle(
fontSize: 20.0,
), …
That’s what main.dart is like. I’m confident in my understanding of it after I did this diagnosis of the Dart files. It’s important for me to do these blog posts for myself rather than a motivation to do it to provide for you. Honestly I don’t think anyone is reading this far unless you’re a beginner programmer that also reads lengthy blogs on the subject, that’s a micro niche, I’m sure your out there. Hi! Thanks for reading.
I hope you got some good insight out of this, I did. If you have any questions or comments or you think I might have got something wrong in my explanations leave a comment below or reach out to me on Instagram @kyleknob.
It’s like a larger than life outdated computer running an old OS
The system is broke, you know it, I know it, we all know it, yet we continue feeding into the very thing that is keeping us down. I’m not trying to point out something that’s hard to find, it’s more obvious than ever. What is it going to take to change? A few things, but first we must get our priorities straight.
If money is the only language they speak, then you better learn all about the language.
Priority 1: Eliminate Frivolous Expenses
Entertainment, eating out, gas, energy bills, and vacation are variables that fluctuate your checking account statement. Whatever you can cut out, cut out. The reason I’m telling you this is because we don’t really consider these expenses as draining, rather we think of them as essential. If you’re on the protest tip, which if you’re reading this blog you must be, or just a very well read hater, then you should try to pin point what is distracting you from your goals and prioritize accordingly. You need Netflix, Amazon, and Hulu subscriptions? Probably not. Can you spend less on food? Maybe. Can you run your air conditioning unit less? If you live in LA it’s probably impossible but you could. You get the point.
Priority 2: What are you investing in?
I’m saving up enough cash and dollar cost averaging into digital assets to hopefully get me ahead in the coming years. I’m investing in my self by learning how to program mobile apps, becoming part owner of an herbal supplement brand PlantsBasically, starting this blog, expanding readySketch, and starting a podcast.
I’m being very ambitious with my self because I know that investing in myself is the single most important investment I can make.
Same goes for you, what can you bring to your audience or your work place, that will allow you to become successful in your own way? Let’s face it, no one wants you to succeed at what you do, they hope you fail so that you can make room for them to succeed. Push through the criticism, the insecurity and be vulnerable.
Priority 3: What is your goal?
This has become a blog post about personal strength, but maybe that’s not a coincidence that personal strength is considered a protest. Let’s face it you can not go out and change the entire world by holding a sign on the street that reads, ‘No Justice, No Peace.’ There’s a point where you are just repeating a phrase like a wind up toy and no one cares or even understands what you mean. My goal is to build up my businesses enough to allow me to live on land that I own with friends I love in a technologically sustainable way. That means, solar passive housing, homesteading, gardening, hunting, foraging the whole nine yards. I want my expenses to be cut down far more than they are now and have more income to travel and live the life I want. How do I get there? Well I got to have a plan.
You fail and fail and fail until you get it right.
Priority 4: Make a plan
My plan involves saving, investing, building brands, and educating myself. It took a pandemic for me to understand what I needed to do to get to where I wanted to go. I call this the pandemic effect, where I was faced with my mortality, so much so that I feared for my life. I didn’t want to see my girlfriend, I didn’t want to go to work, I was a victim of the fear surrounding the virus. I’ve grown past it and learned a lot since the initial headlines, but it rattled me. This survival instinct went into full effect. For the first time in my life I realized how easy it is for it all to be taken from you. Remembering you are not infinite and that you will one day leave behind just a story of you really kicks planning into overdrive. This is when I knew that I can not rely on the grocery store, the job, the gas stations, and the almighty dollar for security. This will not last forever, and I want to be ready when it collapses.
Priority 5: Do the work
You can get all the way up to the planning stage and just give up, realizing that you just don’t have it in you to continue to do the work day after day. It’s so easy to just sit on the couch, drink a beer, tell yourself you had a hard day, and turn on the T.V. I’m sure your day was hard, but let’s face it, it wasn’t 1920’s depression hard or 1700’s witch trial hard, it’s just hard compared to what you see on television and on the internet. People live kush lives online don’t they? Influencers that never did a day of hard work making millions shaking their asses for a McDonalds endorsement or whatever. Stop comparing yourself to others, and just start a habit of doing the work necessary to get you to where you’re going.
Priority 6: Positive reinforcements
When I’m fed up with all the stuff I have to do, and I just want to sink into my bed and watch an episode of The Simpsons, instead I put on something that will reinforce my work ethic. Maybe listen to something Gary Vee has to say about putting out content, or Seth Godin on marketing, or hell, even Ram Dass on experiencing all the love around you not as separate from the world but of it. There is an endless database of positive reinforcements that live on the internet at your fingertips that will keep you motivated in what you are doing. Digest great quality content, do not feed into the “I’m feeling sorry for myself” narrative our brains want to so quickly resort to when things get tough.
I’m tired of seeing all of these large corporations being propped up by billions of tax payer dollars during economic recessions. You’d think we should’ve had our revolution already. You know why we hadn’t? We have not yet put a finger on what to do otherwise. We keep looking up to our political mothers and fathers for permission to eat, breathe and sleep. How will we be able to get our point through the heads of our theatrical political show runners? Good question, my advice, do your best to not have to rely on them. Seek alternatives to the dollar, seek alternatives to traditional health care, seek alternatives to energy consumption and finally seek alternatives to the mainstream narrative of polarity amongst citizens. We all forget the truth too easily, and that’s I Am The Walrus or “I am you, you are me, and we are all together.”
First of all congratulations, you reached a stage where insecurity is king and your main focuses are getting laid and partying, but you’re also going to have to find a job if you want to buy a car, beer or drugs.
I got a truck when I was 17.
You’re 13 you don’t really know what lies ahead, but you’re still kind of anxious to get older so you can get a license and eventually a job because Mom and Dad can’t afford all of that and your dinner, so wise up, the freedom of childhood is fleeting.
In 7th grade I was 12 and was instructed to write a letter to my future self 5 years down the road and when I graduated high school I’d receive it in the mail. I wish I remembered how that worked, it was a cool project. Anyway, I do remember how exciting it was to read it when I was 17 graduating high school. I was telling myself that I better be still skating and be sponsored or something like that and then I’d be disappointed if I had stopped.
I wrote this to my future self, of course I kept it in my important box.
I didn’t stop skating and I was sponsored at the time by Supra, Krew and Foundation. It felt like I was achieving my dream, but it’s a shame that you can’t do the opposite, write to your past self, though impossible, it would be tremendously useful. So instead of trying to break the space time continuum laws I’ll just write to you, the young teenage kid who would give a shit about their finances enough to read a blog about it.
Let’s call money what it really is, a freedom score. The higher the score, the more freedom you have. Once you understand this you’ll want a high score.
Let’s break this down in 4 steps:
Step 1
Save 10% or more of your income every pay period.
If you get paid $200 a week save $20 or more if you can, and don’t spend it. You’re at the very beginning of your journey to own assets that will make you rich, but let’s really talk about what being rich means. Being rich means having enough money coming in every month to cover all of your expenses and the freedom of never going into work again. There’s a few ways for you to get there, but the most easy to understand is buying a house, and though you’re young and buying a house seems so far out right now, every penny you save will make it that much easier to get one, and that much sooner to freedom.
If you save $250 a month for 10 years, you’ll have $30,000
If you’ve played Monopoly then you understand the value of houses. When someone lands on the property, or wants to rent a room in your house or the entire thing, the more money goes into your pocket. The median household cost in America is about $300,000, you need anywhere between 10% – 30% to get the house, so at least $30,000 to cover all these costs that you can’t even think of, you’d believe they were just making them up. As soon as you get a house though you can start renting, the more rooms or the more houses you have, the more money you will have to cover the cost of the monthly mortgage plus funny money. I’m sure you can imagine the domino effect, easy pickings if you got the down payment.
Step 2
Make high risk, high reward investments.
When you’re young you can afford to throw a few hundred dollars at some risky investments because the potential of return on those investments is really high. For example, a few years ago Tesla (TSLA) was considered a risky investment because it was new tech, could it have failed? Sure, but did those who threw some money at it in those early years cash out big? Yes. Another example was Netflix, that too shot up over the years. My point is, when you’re younger you can afford to take a risk with some investments that might tank because you have time to recover what you lose. My advice though is to invest in things you use, like if you have an iPhone, invest in Apple. If you have Netflix invest in that, or if you really want a Tesla but can’t afford one, buy a share. If you want to play it safe with your investment portfolio then maybe buy stocks that pay out dividends. You can run a quick Google search on stocks that pay you money to hold them, one of these is Coca Cola. These ‘blue chip’ stocks as they call them, are usually companies that have been around for like 100 years like Johnson & Johnson, they are relatively ‘safe’ investments that we think will continue to appreciate over time.
You might be wondering how you’re going to afford to invest and save at the same time with your low income job. Well, if you have to choose between saving and investing what feels more comfortable to you? You won’t go wrong saving, and you can lose it all if you invest in shitty companies or if the economy collapses.
Investing is an art, saving is a discipline.
Do one or the other or do both. This is your choice, but since I’m talking to my teenage self, I would say do both, if you have to save 5% of your weekly pay and invest 5% do that, but more is better.
Make calculated risks, and don’t risk what you can’t afford to lose.
Another high risk high reward investment is in crypto currency. If I didn’t mention that in this blog article I’d be keeping you in the dark. This sector of digital finance is revolutionary and can potentially make you a millionaire by the time you’re 20. People are comparing crypto related investments to the dot com bubble of the late 1990’s – 2000’s. The people who were early to buy domains made millions, just like the people who invested early into Bitcoin and held onto it made millions, and it’s not too late still, because mass adoption has not happened yet. I will go into different crypto projects in another blog post, but this blog wouldn’t be complete without mentioning crypto. My advice though is to dollar cost average in. That means every week or every month buy $5 – $10 of Bitcoin, you won’t regret it.
Create a YouTube channel telling people about the things you know about. If you’re into skating, think of some content you can post that other people would be into. The idea here is build an audience that cares about what content you produce. It may seem like no one cares at first, but if you’re doing it consistently for a few years you’ll be surprised at how many people follow you and you’ll be surprised at how much money you could be making because of that. YouTube pays you if you have enough subscribers and if you have enough followers on any channel you’ll find ways to get paid by promoting product or getting sponsorship or what not. This is a long game to play before you see reward, but if you need a constructive hobby, I suggest building out a channel with consistent content, you never know.
Step 4
Learn a useful skill that can’t be replaced by robots or A.I.
It’s important to remember that whatever you’re passionate about learning is going to be your career ultimately. If you’re like me and really into graphic design you’ll make as many things as you can in Photoshop and learn along the way doing so, but whether you’re into computer services like design, development, or programming or carpentry or plumbing or what have you, and you focus on being great at it, you’ll be well prepared for getting a high paying job.
Obviously, there are some other things you can get into to make a buck as a teenager, but you also have to save time for just being a teenager and don’t stress about the economy collapsing and putting all your money into gold, silver or bitcoin to save yourself from hyperinflation and the collapse of the dollar. Go make plenty of bad choices so you know how to make good choices in the future, you’re still a kid and you should be reckless, but try to understand this system like you would a video game.
Money is a game, learn to play it. Understand basic math.
Money is a freedom score, the more you have the more time you will have in the future to go out and be reckless again, because let’s face it, you’re childhood is stripped from you to work 8 hours a day to pay taxes to the man, no other real important reason.
You are on a human farm and just like a cow get’s milked, you’re being milked for the money you make.
Save money, invest, create and learn forever, you’ll be thankful you do when you’re 30. If you have any questions leave a comment below or reach out to me on Instagram @kyleknob.
I’ve been learning how to program with Google Flutter, learning their Dart programming language, which is an Object Oriented Programming language, which practically means its code is built with objects. I haven’t been studying long, but it is still a lot to unpack coming from a background in web design. I’m used to understanding HTML and CSS, so learning how functions make buttons work, and how classes store objects that you can create to run methods is pretty advanced for me. So this is how I’m digesting all this new information, through blog posts I share with other beginners.
Since my last post, Programming Until You Get Headaches, I’ve covered so much new information that I need to unpack into this post that I’m afraid I might skip something. I’m still studying under Angela Yu on Udemy and we started on the Quizzlr app she created for us to follow along with and it’s all new information about Lists, If and Else statements or rather, Conditionals, and finally Classes and Objects. All of this information is a lot to consume at once so I’m taking my time, but by writing how this makes sense to me helps me digest all the new information a little better.
Testing Memory of Lists
This is how a list looks in a class.
I’m going to try to explain how a list works. You start with the syntax List and follow it with data type in these carats <>, so for instance, List<String> represents a List of Strings, following that you can title the List.
This creates a list of strings called favoriteWords that are Triple, Flinch and Flounder (These are the first words that come to mind). You can refer to this list in your app by just calling on it with a positional number in the list starting from 0. I’m pretty sure I’d have to create a variable to call on it.
int wordNumber = 0
Now if I wanted to print a word from the List I’d have to call on it like so:
print(favoriteWords[0]); — this is calling on the index of my list in the 0th position, which is the first in the list, which is Triple.
Damn, I’m just getting started with this, because in the Quizzlr app I’m building, it gets so much more complex by inputting a List like this into a Class. I’m not sure if I can unpack all of this, but I’ll try.
if, else, else if and whatever else
Listen I’m not a pro, and if you’re here to learn from a pro then go to stackoverflow.com, you’re in the wrong place, but if you want to try to make sense of programming like I am, through the eyes of a beginner, you’re right on track. This is an example of an if else statement in this app:
if (correctAnswer == false){
print(‘user is right’);
} else {
print(‘user is wrong’);
}
This statement pretty much just passes a print statement to the console if the condition is true or false, here is a bit about Conditionals
Conditionals
Button pressed conditional statement in Quizzlr app
The == translates as ‘is to’, while the = translates as make left hand = right hand, eg. Kyle = boy. Double equals, == is for conditional statements.
== is the condition and inside {go();} is the instruction:
if (track == ‘clear’){
go();
}
Some more syntax that can work:
!= Is not equal to
> Is greater than
< Is less than
>= Is greater than or equal to
<= Is lesser than or equal to
Combine with comparators
&& AND
|| or
! Not
As I learn more about conditionals I’ll give you some practical uses, but this here is just an overview.
Classes & Objects
A Class is a blueprint. A class has properties like color; numberOfSeats; etc & it has methods like, drive(); break();
With Classes, variables are now properties, and functions are now methods.
class Car {
int numberOfDoors = 5; — property
void drive() { — method
print(‘Wheels turning’);
}
}
Object of this class:
Car myCar = Car();
OOP – Object Oriented Programming
Abstraction – functionality with different components, more complex systems with smaller pieces with more defined roles
Looks like you can create classes that hold lists, and classes to construct the list. Kinda mind boggling.
I’m in the middle of this module, so there is still more to unpack.
I started a blog, obviously, but it’s weird telling my friends that I’m writing blog posts that I expect people to read. It’s like baking enough cookies for a party of 12, but it’s just you and me. I made too many cookies, or did I?
Guess I’m gonna just have to eat all of these
I’m telling people I’m starting a blog because I think it’s great practice to articulate my thoughts, but if I may go deeper then that, it’s because I can communicate through my higher self.
Everyone Has A Higher Self
I’m not talking about my high self, when I smoke a bunch of weed and forget the sentence I just thought up, I’m referring to the subconscious. The elusive part of myself that is always retrieving data, storing it and guiding my intuition or my better nature. Not everyone’s subconscious is the same, so before you roll your eyes and think I’m just spouting out bull shit in my new blog I want to say that it’s a real guiding consciousness in our lives that we hardly are in contact with.
Writing Puts Me In Contact With The Gods
Thank you for this flow
That sounds extreme, and it’s meant to, because well I’m writing a blog and I’m expecting you to be this far along and still holding your attention. However, if you’ve got an open mind, then you can imagine what I mean. The more freely you articulate your thoughts on paper or in a digital note pad, the more fluid wisdom just pours out. It’s almost like you’re accessing a part of your brain that you in 99% of your day you completely ignore. When I sit down and start to write about anything, I begin to type through this person that is talking to me, my conscious every day self.
Kyle Meet Kyle
We are constantly receiving information from all around us, like an antenna tuned into to a radio station. I believe that when I begin writing, I’m tuning the dial to this subconscious Kyle that doesn’t bother with greetings, it’s just like, “Duh, where have you been? You should go for a walk.”
I’m happy that I can talk through you Kyle, and I’m excited that I can wrap my mind around what this is now, I will go for a walk, thanks.
Go for a walk.
Be A Subscriber
I’m not shy like I used to be, so I’m going to directly ask you to subscribe to this blog. It’s full of important Me stuff, and information that you might be able to get some use out of as I continue to write.
I want to close this by saying that in order for me to keep this blog going, I’m going to have to remember one thing. Do not write for an audience, write for yourself. This is a blog intended for the conscious Kyle you see walking around society, skating down the street, playing a tune on a guitar. That Kyle needs some guidance and reassurance that he is on the right track, and to just relax, don’t stress, breathe, and make some damn money so you can get the hell out of Los Angeles already!
Thanks for being a subscriber, if you have any comments leave them below, I know you have to have Facebook to leave a comment, so if you’re against Facebook, send me a DM on Instagram (A Facebook Company) @kyleknob or on Twitter @kylesshortcuts, thank you.
Like you, I thought about all the dangers of traveling before I made my decision to get on a plane. So this is how I made my decision. Like all big decisions I weigh the pros and cons. In my case, I was offered a free flight from Los Angeles to Philadelphia to go to Woodward Skate Camp with my good friends at Dogwood Skateshop. What that meant to me was fresh air, a break from reality, and a very cost effective trip. I compared all these great things to the pandemic.
Pros & Cons
I don’t think anyone can tell you how to make a decision to travel, but it is your responsibility to feel like whatever your decision you make is the right one. There are some reasons why you shouldn’t travel, like if you are a naturally anxious person about your health, or you’re a hypochondriac. In this case I recommend you stay home if you’re just going to stress about covid the entire plane ride. However, if you’re a little worried but think that your trip will alleviate some stress then go somewhere relaxing. The chances of you catching covid if you’re a relatively healthy person and you take as many precautions as you can, are slim.
A lot of the fear surrounding covid is toxic and is causing way too much stress which actually inhibits your immune system.
Breathe through your nose deeply.
Prioritize Relaxation
Vitamin D is so key.
Unless of course you are traveling because of an emergency, make sure you’re getting enough time to relax out in the sun. The sun should be one of your priorities, take your shirt off, soak in as much Vitamin D from the sun that you can without burning of course. Your immune system will thank you. Breathe in some fresh air too and drink some clean water. Remember the elements: Earth, Wind, Fire and Water. Put your feet in some soil, breathe fresh mountain air, soak in some warm sunshine, and drink some fresh spring water. Visit findaspring.com to see where your nearest spring is at. Not that I went and got spring water on this trip, but I wish I did, I just drank plastic bottled water. I don’t know what’s worse, plastic bottled water or tap water?
Be Grateful for What You Can Do
In the end, this trip is about getting out of your routine and being with friends. This is such a strange uncertain time that I can’t really be certain if I can have many more of these trips, I don’t like to think too dismally, but it’s hard to know for sure, so cherish what you have right now, and what you can do. Flights are cheap, if you’re far from your family and your friends go visit them, tell them you love them, because you don’t know if you’ll ever get the chance to do that in person again. Be safe and be prepared for any scenario. If you have comments, want to call me an idiot or something, leave them below or reach out to me on Instagram @kyleknob.
I been following along with my instructor Angela Yu on Udemy and I have been enjoying how clear and concise she is, however I really wish there was more explanation about the syntax of the Dart programming language. Like why use semi-colons instead of commas, why use curly braces here and not there etc. Maybe these are things I will look into when I find time, but it’s really testing my memory skills, and that is the sole reason I decided to get Lion’s Mane mushroom. Lion’s Mane is a medicinal mushroom that helps with memory amongst other things, and when taken with a small micro dose of psilocybin I find that installing those memories is much more easier. I do recommend you micro dose, there are amazing benefits, however I am not your personal advisor and if you are susceptible to intense anxiety, paranoia or psychosis you might not want to experiment with it and instead take more notes.
Function Inputs or Arguments
To remind you, you create a function with a void keyword:
void nameFunc(){} — in this function’s empty parentheses () you can add data like you would a variable. For instance:
void greet(String personToGreet){} — this creates the opportunity to use personToGreet in your function like so:
print(‘Hello $personToGreet’) — now if you’re going to call on this function you would need to add it to your void main(){} like so:
void main (){
greet(‘Kyle’);
}
This main part of your function will look between your parentheses in your greet() function you created:
void greet(String personToGreet){
print(‘Hello $personToGreet’);
}
This is how you pass data when you CALL on the function greet(‘Kyle’);
I’m not entirely sure how I’m going to use this in the future, but I’m sure there is a reason why she had told us about this. In this module I’m building out the Xylophone app, installing a package I found on the Dart packages website called Audio Players, importing it into my main.dart file and calling on it in my pubspec.yaml file to load sound files from my local assets folder.
Building out this app was a small tutorial on how to pass an integer into the function that plays the sound when the button is clicked.
void playSound(int soundNumber){
final player = AudioCache();
player.play(‘note$soundNumber.wav’);
}
When I press the button it calls on this function that is ran with:
playSound(1) or playSound(2) — replacing the number of my sound file in my assets folder to play a different note when another button is clicked.
Making Use of 3 Types of Functions
Functions that start with void() have NO output, but can assume an argument between the parentheses that is a variable. If you don’t need an input it’s a function that just runs a series of steps. If you add an input then you can use that input variable in your function. The third type of function has an output and you call this by the data type you wish to output with this function. In the case of the Xylophone app we use a function to output an Expanded widget and use the inputs of the buildKey() function to specify the color of the Expanded() widget and the sound file to play when clicked, with a variable titled soundNumber, like so:
Expanded buildKey({Color color, int soundNumber}){
return Expanded(
child: FlatButton(
color: color,
onPressed: () {
playSound(soundNumber);
},
),
);
}
I emboldened the parameters that cannot be given a unique name to illustrate how this function is built. Expanded is the widget we are returning so we need build the function starting with Expanded and follow that with the name of the function we will later call, in this case buildKey(), but notice how inside these parentheses we add curly braces: buildKey({Color color, int soundNumber}) — the data type we are going to change is the Color property, and the data type of int that will be specified in the previous variable called soundNumber.
The curly braces are necessary only when we are creating a function that needs to specify the name of the data we wish to change. For instance we are going to need to specify the color when we call on the buildKey method like so:
buildKey(color: Colors.red, soundNumber: 1),
buildKey(color: Colors.yellow, soundNumber: 2),
buildKey(color: Colors.blue, soundNumber: 3),
buildKey(color: Colors.purple, soundNumber: 4),
buildKey(color: Colors.orange, soundNumber: 5),
buildKey(color: Colors.teal, soundNumber: 6),
buildKey(color: Colors.pink, soundNumber: 7),
We are basically telling this buildKey function to return the Expanded widget, that has a child of a FlatButton, who’s color will be defined when we use the function (hence the Color color input when creating it), and when you press that button it’s going to run the function playSound we previously created that takes an input of an integer data type we called soundNumber. So that when we use buildKey(color: — we are telling it to look for the variable called color in the function color: color — built into the input of the function buildKey({Color color — the property of Colors.red, blue, green etc. will be specified by us when we call the function buildKey(color: Colors.red, soundNumber: 1) — we then specify the soundNumber variable with an integer of 1 or 2 etc.
There’s a lot to wrap your mind around, but when you dissect the creation of the function it becomes logical, computers aren’t really a mystery, they just run off of logic and use keywords to know what you’re trying to tell it. So look at these functions, tinker around with the inputs, try to understand the syntax and why it’s written the way it is. We’re practically trying to imagine if we were a computer how this would translate to us in a clear way. It takes practice.
Don’t let the headache of learning control your attitude around learning, I must remember to have fun at this every step of the way and take breaks if I catch myself getting too serious. Remember to laugh at your own incompetence, you will learn, but you will learn at your own pace. If you have any questions or comments leave them down below or reach out to me on Instagram @kyleknob
Lot’s of the artists I admire have one thing in common: they all have their own unique style. Think about that, every artist that you look up to has very little resemblance to any other artist in their space, but yet I’m trying to be more like Warhol or Bowie or something.
Making Art Is Over Rated
What to make?
When I do my best work, I’m not telling myself, I’m going to make art today. I’m letting myself succumb to the emotions I’m undergoing at that moment. My emotional state at any given moment translates through the art I’m making. So I’m not consciously telling myself to go make art, I’m allowing my emotions to be constructed into whatever medium I choose. So don’t make art, be aware of your emotional state and translate it. Don’t let that confuse you, I’m not saying don’t make art, I’m saying, make art that means something to you, not to who ever your potential audience is.
The Difference Between Potential and Perfection
When I have a new idea in my head I envision it being flawless, and my expectation is set so high that when I start on that project I’m struggling with what I can physically create compared to what I’m mentally picturing. This expectation is the killer of creativity, I’ll stop myself right in my tracks after undoing one line I drew 3 times.
Through years of dealing with these high expectations I’ve become so aware of the mental torture it causes that I just started drawing in whatever style comes naturally out of my untrained hand. The act of letting go is a spiritual practice, and before I start boring you with some spiritual reading I want to say that many of our expectations are built in the version of you that presents itself to others, or the ego. Once you can realize you have no control over how others view you, the creative mind opens up like a flower in spring.
Let it go, you’re not anyone but you.
Your potential is not measurable, and perfection though it seems possible is never achieved. The sooner you can accept this, the more you will allow your creativity to run through you like the blood in your veins.
Overcoming Criticism
I will always be talking about overcoming criticism as an exercise to overcome it myself. Writing these blogs actually help me more than you think. I’m telling myself, “This is a practice of becoming more honest with myself and more open with others.”
You won’t be able to turn off the fear of showing your own art to someone, but you can learn to dance with it. I love this term coined by Seth Godin, the marketing guru.
Dance with your fear, don’t run from it.
The idea is that the fear your feeling comes from part of your brain that is there to save us from being injured or killed in the wild by maybe a bear or a mammoth or something, but in this modern age where fear presents itself before public speaking or in this case sharing your art with a group or a friend, there’s no life threatening risks. Your brain might be making you feel like there are, but you’re misinterpreting what it’s trying to tell you. It’s saying, you’re uncertain of what’s about to happen because it might make you uncomfortable.
Fear of Being Uncomfortable
You’re debilitating fear of being uncomfortable is controlling your progression. We all have dreams of becoming successful at what we love to do, and only some of us will make it according to how willing we are to be uncomfortable. Your progression really relies on listening to your brain when it feels scared and having the ability to tell it,
“Thanks for the alarm I will do exactly what you’re trying to prevent me from doing.”
I hope that after reading this you got some insight on how to be more creative. It’s not so hard but it’s a practice that I wish I started when I first began creating art. I still struggle with my creativity and you will too. This is just a reminder to you that everyone deals with the trouble of accessing their true style, techniques or voice. The great harbinger of art is listening to your fears and understanding how it corresponds with your ego. Until you find a good relationship with yourself and truly love your mistakes, you will be blocking the emotion needed to progress as a unique artist.
I’m on this journey for freedom, a lot like the epic tales I’ve heard of people escaping war torn lands across the world to come to America or something, but this is a more modern version of those stories. I’m seeking freedom in many alternative ways, like many of my friends are. I’ll start with financial freedom.
As soon as I get my bag, I’m fleeing LA
Financial Freedom
All of us have a relationship with money and if you’re like me, you’re so tired of hearing anything about investing, career paths, or the future of retirement. I told myself to live in the moment, focus on what I need now, and not dwell on where I’m at 40-50 years from now. Until the pandemic hit, I was riding this wave that was never going to crash into the shore, but that all changed.
This wave won’t crash.
The Pandemic Effect
When my brother was laid off from his work as a chef and I started to work from home, a profound sense of fragility weighed over us. I’m speaking of the uncertainty of employment, how extremely reliant I am on my job to pay me well enough to eat, pay rent, drive a car, and be connected to the internet. The alarm was going off in my head, “I’m not equipped to handle a catastrophe.”
I work in design and have the good fortune of being able to work from home, but my brother and roommate, is relying on unemployment to get him through this time. When “The News” said they were going to slash unemployment benefits by $600, it got real worrisome. At the time of writing this I think more than 30 million Americans are unemployed. That’s around 530 Dodger stadiums filled with people relying on benefits that are now cut, possibly losing homes and businesses with families to feed and debts to pay.
What the pandemic showed me was how incredibly vulnerable my life is. I’m so grateful to have done this and that in my past that brought me to this and that right now, however I’m still worried and I still can afford groceries!
These aren’t cheap.
I’ve come to the conclusion that I need to learn how others are making money online, working from anywhere so that I’m financially reliant on my capabilities not someone else’s. I need to try new things and make calculated business decisions that can get a product that’s in demand on the market and sell it, how to take an app idea, learn to develop it, and monetize it (readySketch), how to write quality content to drive readers to this blog, how to be myself in front of the camera to teach the skills I have in design, photo and video, and how to communicate my vision of the future that so many of my friends are striving toward, an off the grid, sustainable homestead.
Should I be doing this?
Freedom from Self Criticism
Up until now I ridiculed people for being personalities on YouTube or shooting selfies because of my own insecurities. A lot of us use our own insecurities to put someone down for doing something we wouldn’t do ourselves. I had a lot of self reflecting I’ve done because of the Pandemic Effect, so I needed to explore what I could possibly offer to you, the reader, that drives value to my content, and it was easy.
I need to share with you my gifts of what I’ve learned in my unique circumstances, in my own way that differs from how others are sharing their gifts. Embarking on this comes with facing my fears of being on camera, being read enough, being important enough, being successful or disciplined, having a worthy point of view, being knowledgable enough, etc. There’s too many insecurities to name, and I’m certain I’m suppressing more than that.
Getting Over “It”
I’m having a difficult time actually making the transition from work and procrastination to work and progressive action. I need to make the time if I am serious, and I am. I believe that I’ve ridden these waves far too long to not know how this current of mind flows. Discipline is key to the success of any project or business, and jeez, I lack it so badly.
This is a much better use of my time.
Acknowledging you have a problem is the first step to solving that problem. I am a procrastinator. The discipline must first be enforced by myself, and I must trust this “higher self” that wants only the best of me, to guide me along on this uncertain, bumpy, exciting journey to financial freedom.
Techniques to Practice Discipline
I’ve added a reminder to my calendar. You can do that right now, open your calendar app on your device and schedule something you want to remind yourself to do every day or every Monday (you got to ease yourself into it) and when that reminder pops up you’ll remember to get to work, or if you’re like me you’ll follow it for a few months and just ignore it for life until a pandemic or something catastrophic enough happens to eventually act on it.
Another technique I’ve heard I think actually comes from Jerry Seinfeld, but I was clued in on it by my app development instructor Angela. Everyday you accomplish 20 minutes of the goal you set or more, you draw a line through the date of that physical calendar. You might have to buy a desk calendar, but if you’re serious about discipline you might as well.
You’ll be so inclined to continue to draw that line through the days that no matter how much you feel like procrastinating, you’ll want to do at least 20 minutes to continue drawing that line through the month. I’m just starting to do that now, so I’m no seasoned veteran of this technique, it just sounds good.
I’m gonna achieve this goal, because this snake I’m drawing must not end.
Chasing Freedom Must Be Fun
For me, if it’s not fun I won’t bother learning or making anything, so in order to get things done I create the fun. I must, no matter how mundane and brain consuming the tasks are,
I must make fun of it some how, whether actually laughing at my own incompetence or just being absurdly creative with it.
Fun must be fuel to achieve great things. It’s what gave me all the skills I have now, and what will give me everything new I learn from here on out.
My advice to my younger self, or to you my reader, is to not allow your fear of being vulnerable to the public determine how you proceed through life. The people I admire are the most vulnerable, open, and disciplined people in the world. I will not get to achieve the freedom I seek by being afraid of my own insecurities. Don’t be sorry to anyone for who you are.
I hope that I can inspire you to follow your passions to fullest extent, I’m trying to inspire myself constantly. Remember to have fun, be resourceful, ask questions and be yourself. It’s easier said than done, but you will not be mad at yourself for trying, and if you’re disciplined and consistent, a few years from now writing blogs, making videos, learning new skills, you’ll be surprised by what you achieved.
If you want some help with your journey feel free to leave a comment below or reach out to me on Instagram @kyleknob
I thought I knew a thing or two about functionality and how Dart code works until I took a weekend off of coding and came back to it. Once I tried to code using my memory of Cards and ListTiles I realized I needed more practice.
Practice Practice Practice
Coding isn’t as fun as playing guitar or skateboarding or something like that, since there’s no immediate reward. Well I suppose there is, it’s just not as immediate. What I’m trying to say is that when I’m coding it’s about the repetitiveness of it that will help me remember it, just like writing a song or doing a kickflip. My brain wants to speed through everything, but it’s the time and the work I put into it, just like everything else, that will allow me to become a better programmer.
Stateless and Stateful Widgets
I had an epiphany a moment ago when I coded a Magic 8 Ball app in Angela’s class about how Stateless and Stateful widgets interact. It looks as though the Stateless widget is where the Material App, AppBar, Scaffold and body: are held, but until now I didn’t realize that the body property holds the name of the Stateful widget. In the case of this Magic 8 Ball app, the body: property holds body: Ball(), the name of the Stateful widget and class I define to make the app function, or change state.
Class or Widget or Both?
It seems to me that the name of the widget is defined by using a class. I name my Stateful widget Ball and it changes the name of the state as well, for example:
class Ball extends StatefulWidget {
@override
_BallState createState() => _BallState();
}
class _BallState extends State<Ball> {
int ballNumber = 1;
@override
Widget build(BuildContext context) {
return Center(
It’s in between the class _BallState extends State<Ball> { curly braces that I define my programs variables and functions. Here, I created a variable called ballNumber and I set it to 1.
I am returning the rest of my apps body in the return Center(), portion of this Stateful widget. Which is loaded in my Stateless widget by just calling on the name of the Stateful class I titled Ball:
class BallPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.lightBlue,
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text(‘Ask Me Anything’),
),
body: Ball(),
);
}
}
Should I stop programming?
The name of this Stateless widget is called BallPage, and a lot like how I call on my Stateful widget in my body property I do the same with my Stateless widget in the runApp==> Material App widget, like so:
void main() => runApp(
MaterialApp(
home: BallPage(),
),
);
I’m telling Dart, run this app that’s built with your MaterialApp framework and the contents of this app can be found in the following Stateless widget titled, BallPage. With your home: property you will find home: BallPage(), which makes sense when you analyze how each widget inherits the code preceding it.
So remember that the Stateless widget holds the body of your Stateful widget, and the Material App needs to load both of those by calling on the name of the Stateless widget you define with the home: property. Make sense? Maybe re-read that a few more times. It’s computer language, you begin to realize how meticulous computer languages are.
Stateless widgets hold no functionality and Stateful widgets do. Your Stateless widget needs to know about your Stateful widget with the body: property and your Stateful widget needs to return the Center or Container widget tree of the functional app you’re creating, got it?
I’ve learned a lot since my last entry, and it is all making very good sense. Since my last module with Angela I’ve become a bit more adapted to writing in Dart. I’m feeling pretty good about it. I suspect this is what I miss about being a student in conventional school. You’re introduced to something you want to know more about, you’re told to study that subject, you make notes that you can understand as you study, and you go over that for an hour a night until the test, you pass the test because it’s all so familiar, you get a good grade, you’re excited to tell your parents, and experience for the first time the pride in learning new things.
Before I look at my notes, I’m going to try to remember some of the new things that I think are important for you to remember.
Start new functions with void. Like — void nameFunc () { //do something}; — remember the syntax, () and {};
Variables can be called by it’s data type instead of calling out var use the data type to call it out — int = 12; — string = ‘Hello’; — remember the syntax = and close with ;
Card widgets are formatted for a Icon leading horizontal box, use can make children [ ] within the widget that hold ListTile (), — ListTile widgets are followed by leading: property for Icons.icon, a title: property for Text(‘Some Text.’ style: TextStyle(fontFamily’Sans’),), — and a trailing: image or icon — wrap it all in a Padding() widget for some padding
Images can be called using child: Image.Asset(‘images/name.png’)— with string interpolation you can use the $myVarName to pass in the data of the var — Image.Asset(‘images/$myVarName.png’),
Stateful widgets are for functionality, stateless are for displaying content only — in the class page state method you want to call out your vars and functions — in the build method is where you hot reload your app and return a widget to begin the widget tree ie. return Center (),
An Expanded() widget in a Row() is meant to take up the entire width of the Row — Use Expanded widget instead of container to fit to width of any size device
FlatButton(), is used to wrap an object in a button. It needs to include onPressed(){ } to tell it what to do when you press the button. This is where you can check to see if it’s working with a print (‘Hello’), statement — you can’t really update the state of the button without putting setSate((){} inside of onPressed(){ } — setState tells the app to update what’s on the page when button is pressed.
Import ‘dart:math’; at the very beginning of your code to use the math library, I used this so far to call a Random function to my variables — varName = Random().nextint(max) + 1; randomizes the image in the images/ asset folder according to a number from 1 – 6, so I replace the max with a 6 and + 1 because it counts from zero
I only looked at my notes when I started to forget around number 6, but writing down notes and writing it out for you in a blog really helps cement the knowledge in my brain. If I keep this up I’ll be a pretty resourceful developer. I’m excited to learn more, but I’m going to study the layout of this code some more and I hope that you’re excited to learn more as well, us beginners need to help each other. I’m happy to share this journey with you.
If you have any questions or comments leave them below, otherwise reach out to me on Instagram @kyleknob.
Each app begins with the runApp() function. It calls on the MaterailApp() Google designer framework that loads in all of the components to build an app with flutter. Using the home: property I call on the Scaffold() widget. Inside those parentheses I continue the widget tree with MaterialApp() as the father and home: Scaffold() within that.
Here I can add a backgroundColor defining it using Colors.nameofcolor you can find colors at material.io or just pick a basic color like Colors.red. Following the widget tree, beneath my background color of the entire app I use the property appBar: to call on the AppBar() widget within those parentheses I call out a title: property to use a Text() widget. Inside those parentheses I use a single quote ‘ to write my text string, in this case (‘This is a mushroom’). To call out the background color of the appBar I call it out just like I did for the Scaffold’s background.
Now to add stuff to the body beneath the AppBar() I must remember to be outside of the AppBar closing parentheses ). Here I call on the body: property and I want the Center() widget for it to be centered in my Scaffold(). I must make it a child of the Center() widget by calling out child: property. Here I want an Image() widget. In these parentheses I tell the child: Image( that I want an image: that is a AssetImage() or a NetworkImage().
If it’s an AssetImage() I must open the pubspec.YAML file and under the assets portion of this YAML file I call out a folder I created in my flutter document called images. So pubspec.yaml looks something like:
Flutter:
Assets:
– images/nameofimage.png or simply leave it images/
Everything in this YAML file is read using double spaces, that’s important. So now that I called out an image in my Center() widget I can say I’ve successfully understand how the Scaffold() widget works and how things are placed in the body of the app. It’s a little tricky at first but the more I look over the code and try it from scratch over and over again, the more the syntax of dart starts to make sense. I would say this shouldn’t be too complicated once we get into interactivity by adding buttons and lists and so on, but if I continue to take my learning one step at a time, and then taking the time to understand it by writing it out to for you (my reader) I will eventually understand the concepts enough to code freely and solve issues as I run into them.
import 'package:flutter/material.dart';
//main is the start of all flutter apps
void main() {
runApp(
MaterialApp(
home: Scaffold(
backgroundColor: Colors.black45,
appBar: AppBar(
backgroundColor: Colors.red,
title: Text('This is a Mushroom'),
),
body: Center(
child: Image(
image: AssetImage('images/cordycepts.png')
),
),
),
),
);
}
To use hot reload with Flutter you got to put your MaterialApp in a StatelessWidget{}, you can type out stateless and select StatelessWidget. This creates a class for your app, so change the class to MyApp or the name of your app, and change the code it provides you to return the MaterialApp() widget.
Now that you set that up, you can build your Scaffold() widget tree. So within your parentheses of your MaterialApp() use the property home: and add Scaffold() like this: home: Scaffold(), Remember to use the comma after every end parentheses so Flutter can appropriately format the code. You can change the backgroundColor: property using Colors.white, but what’s important is to remember to use the body: property to call out the SafeArea() widget. Inside this SafeArea() is where you will start adding a child Column() widget, or Row() widget.
For instance, you can call out child: Column() to start another widget tree within that Column() parent, however to add multiple Container() widgets within the child: Column(), you will need to use the children: property with square brackets. I’m not sure why we use square brackets, but we do. Within those brackets is where we call out our containers and add properties to them like size, color and text.
Use mainAxisAlignment: property to align them in your Column() thus in your SafeArea(). MainAxisAlignment.spaceevenly will space your Container()’s evenly on your screen, there’s a lot more MainAxisAlignment and CrossAxisAlignment spacing techniques you can try, Flutter helps with that when you start typing it recommends what you might be trying to do.
The power of Flutter and its MaterialApp framework is proving to be tricky, but not impossible to understand. I’m taking my time with my lesson with Angela on Udemy to fully understand what I’m coding, and I’m taking this effort to explain to you to further cement my knowledge of the Dart language in my brain. I’m making a conscious effort not to try to speed through these lessons and it’s paying off. I tried taking her class on Swift development and was trying to learn at some unreasonable pace that eventually when it got too difficult I gave up. If you’re like me and you can spot out your weaknesses, then do what you can to approach confronting them carefully. It is easy to be disappointed, but it takes real patience and practice to learn new things, and it’s real important to have a passion project you want to create to keep the fire going. I want to learn Flutter to build out my iOSs app readySketch, so that I can bring it to Android, expand it’s capabilities, gamify it a little more and learn to monetize it. I’m a long way from getting there, but everyday I make an effort to learn Flutter I’m one day closer than before.
I hope this helps inspire you to keep learning and go easy on yourself. Our little human minds need time to absorb new languages. Remember you’re on the right path, and app development is one of the most exciting areas to gain knowledge in. Go after it, just pace yourself. I’m only on module 2. Feel free to reach out to me by leaving a comment below or on instagram @kyleknob