How I build components for my iOS app (SwiftUI, no AI)

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 68

  • @ZaneAlgogh
    @ZaneAlgogh 11 днів тому +5

    amazing video. for the past 3 months, ive been making my first ever mac app using a mix of both appkit and swiftui, first time ever touching swift. this video showed me, that i still have a lot to learn

    • @ZaneAlgogh
      @ZaneAlgogh 11 днів тому +1

      i also really appreciate the tangent regarding hsv vs rgb. i sort of picked it up instinctivly when i first started using sketch but never wondered _why_ it worked better than just picking a random color

    • @mykolaharmash
      @mykolaharmash  11 днів тому +1

      Thank you! Wow, cool that you found it out yourself!

  • @grrvaes
    @grrvaes 8 днів тому

    Very cool video, beautiful component. The design tip with the brightness and saturation changes is awesome, will use it for sure.

  • @UliTroyo
    @UliTroyo 10 днів тому +2

    I've implemented the same color slider before in JS, so I found this video thoroughly fun :)

    • @mykolaharmash
      @mykolaharmash  9 днів тому

      Ah cool! I imagine on the high-level the implementation is pretty similar.

  • @giuliopimenoff
    @giuliopimenoff 9 днів тому +1

    those videos are so helpful, I was almost going to message you precisely about this color picker haha

  • @erikas.j
    @erikas.j 11 днів тому +1

    Hey! Great and relaxing video, doesn’t feel like the usual tutorial but more like a diary of sorts. But me who is coding on my first ios app feel like I’ve learned something about a way you can code with swift. Keep it up would really love to see more like this 🔥
    Love from Luleå, Sweden 🇸🇪

    • @mykolaharmash
      @mykolaharmash  11 днів тому +1

      Thank you! Glad you liked the format, the intent was to mostly focus on high-level concepts, some tips here and there, and not so much just typing the code.

    • @erikas.j
      @erikas.j 11 днів тому

      @@mykolaharmash Yeah and I think its what made it so great and entertaining to watch. Just to get a quick overview and some comment on why you done things a certain way without deep diving into how every part of something works makes it easier to watch and pickup the things i find interesting. I think you are on a great track with this one!

  • @mehmetuzel7396
    @mehmetuzel7396 7 днів тому

    I have recently added custom color picker to my app. At first I have started adding custom interface which is similar to yours with slider etc. Then I have deleted all the code after dealing with it all afternoon. I just add default color picker and go with it. Because it had issue and might have another ones in future. Main functionality of the app is not color picking and no one will care how they choose custom color, they just want a working solution to color thing. The update rolled out two weeks ago and zero complaints a lot of gratitude from my users

    • @mykolaharmash
      @mykolaharmash  7 днів тому

      I see your point and there is definitely a place for this utilitarian approach. In my case, the app I’m building is a commodity, yet another habit tracker. So there has to be a way to differentiate it from the competition. I chose design and UI as one of the ways to stand out, some people don’t care but some very much do as I see from the feedback. Plus, it’s much for fun for me to build, which also adds motivation to work on the app and ultimately a benefit for the end user:) the default color color picker was my first choice as well but I did not like how it felt for my particular use case.

  • @schmidvid
    @schmidvid 11 днів тому +13

    awesome video! As a product manager, in my head, I always evaluate "how hard can it be to build feature x" when handing over features to devs. "Can´t be that hard, can it?" Thanks a lot for this nice breakdown, It opened my eyes: There is a ton of thought that goes into such features :D

    • @mykolaharmash
      @mykolaharmash  11 днів тому +3

      Thank you! To be fair, in a "real" project it would have been some off-the-shelf component. It's only with my personal projects I allow myself to indulge a bit and build everything from scratch:)

    • @doktormacak007
      @doktormacak007 11 днів тому +3

      @@mykolaharmashwhy did you tell him this?😂

    • @mykolaharmash
      @mykolaharmash  11 днів тому +6

      Oh no, what have I done 😅

  • @kooone
    @kooone 9 днів тому

    thank you that was a very great video! i like your art and your style please keep on going!!

  • @peterandhounds
    @peterandhounds 11 днів тому +1

    This is awesome @mykolaharmash! It's so great to see this kind of deep, detailed-work and craftsmanship. Thank you!

  • @slide8770
    @slide8770 11 днів тому +1

    Such a good walkthrough!

  • @partisan-bobryk
    @partisan-bobryk 9 днів тому

    Love these! Keep going!

  • @bracedshorts
    @bracedshorts 9 днів тому

    Awesome! i really needed this 😭

  • @jawadayman734
    @jawadayman734 9 днів тому

    I don't code in swift. However that was incredible. Amazing work man!

  • @giuliopimenoff
    @giuliopimenoff 8 днів тому

    would be really useful to have a video about your code architecture / design patterns in swiftui? Like how you handle creating reusable components, callbacks, logic etc...

    • @mykolaharmash
      @mykolaharmash  8 днів тому +1

      Great idea, will do something like a codebase walkthrough 👍

    • @giuliopimenoff
      @giuliopimenoff 8 днів тому

      @@mykolaharmash dope

  • @dugtrioramen
    @dugtrioramen 10 днів тому

    Awesome tip with going up left for lighter colors and down right for darker colors. I've been doing the alpha method the whole time and they never felt right

  • @giuliopimenoff
    @giuliopimenoff 8 днів тому

    may I ask you how you did the AngularGradient color picker button without having its center white?

    • @mykolaharmash
      @mykolaharmash  8 днів тому +1

      Sure, I shared a full code snippet for that gradient, take a look www.threads.net/@mykola.harmash/post/DBixKSQsmVC

  • @Tabonx_
    @Tabonx_ 11 днів тому

    Great video!
    What iPad are you using? I have recently bought an iPad Air M2, and it has some touch sensitivity issues - even on my second unit, it's the exact same problem. I was wondering if this is happening to other models as well. It happens when it's on a table and you are not touching the metal parts, it's not plugged in, and it's in landscape mode. With that, the home gesture does not work like 30% of the time, and normal swipes and touches are also sometimes not registered.

    • @mykolaharmash
      @mykolaharmash  11 днів тому +3

      Thanks! I have an iPad Pro M2, I believe it's 2022 model. That's a weird issue with the gestures, sometimes I also catch that the home swipe does not work from the first try, but it's usually when I have something full screen, not sure if it's a bug or a feature tbh...

    • @Tabonx_
      @Tabonx_ 11 днів тому

      @@mykolaharmash I see. I actually put a screen protector on the iPad and it was terrible - like 80% of the time the gesture did not work. I even initiated an Apple Support ticket. It looks to me like it's some grounding issue since it goes away when I touch the metal parts or plug in a charger. Looks like this is happening on most of the iPads, which kind of sucks since I usually want to have my iPad on a table when this issue is most noticeable.

    • @mykolaharmash
      @mykolaharmash  11 днів тому +1

      @Tabonx_ hm, yeah, that’s a bummer, sorry to hear 😔

  • @arnantrsyd
    @arnantrsyd 11 днів тому

    When calculating the knob colour, would you not have been able to pass the current value through as hue (with associated b & l), or would that not have produced an accurate result?

    • @mykolaharmash
      @mykolaharmash  11 днів тому

      Fair point, and it would work in case the slider was meant only for selecting hue, I would do exactly what you suggested. But I needed to make it more generic to handle the second slider for selecting lightness, in that case hue stays fixed and other two parameters change.

    • @buhtube
      @buhtube 8 днів тому

      Hey ​@@mykolaharmash, I'm sorry to say that the last part about calculating the color was a bit unnecessary. Your slider should just return a value from 0 to 1. It could be a hue or brightness value, or something else, where the logic of colors interpolation could be done more precisely on the usage point. Anyway, great video!

    • @mykolaharmash
      @mykolaharmash  8 днів тому

      Hey👋 But that’s exactly what’s going on, unless I miss something in your comment. The slider is indeed just returns the value from 0 to 1, but it still needs to display the current color on the knob, and I wanted to isolate that inside the component because I don’t need that color outside of the slider (parent component uses that 0 to 1 value in a different way). Let me know if I misunderstood what you’re trying to say.

  • @GawblyOG
    @GawblyOG 11 днів тому

    Great video myko!! and as a dev, thanks for that hsb trick to get good shades.
    What pen and app are you using by any chance? looks very clean

    • @mykolaharmash
      @mykolaharmash  11 днів тому +1

      Thank you! The pen is Apple Pencil (2nd gen if I remember correctly), and the app is just the default Notes, though Notes kept scrolling the page while I was drawing, there was a lot of re-takes 🫠 next time I’d choose some proper drawing app.

  • @Rexos_
    @Rexos_ 9 днів тому

    have you added this to checker?

    • @mykolaharmash
      @mykolaharmash  9 днів тому

      Yes, it went live a couple of weeks ago:)

    • @Rexos_
      @Rexos_ 2 дні тому

      @ In my case doesnt work at all

    • @mykolaharmash
      @mykolaharmash  2 дні тому

      Could you please message me with the issue you are seeing? My email: mykola.harmash@gmail.com. Thank you!

  • @will.barnish
    @will.barnish 11 днів тому

    Great video idea

  • @chidorirasenganz
    @chidorirasenganz 8 днів тому

    I would suggest looking into OKLCH as an alternative to HSV/HSB because it’s a much more perceptually accurate and intuitive

    • @mykolaharmash
      @mykolaharmash  7 днів тому +1

      That's a great point, I even wanted to include a note about OKLCH and LAB in the video but scrapped it last moment because it was getting too long already. I love the perceived lightness variable in those color systems! Even with the hue gradient I have on the slider in the video colors have visibly uneven lightness (I had to reduce saturation to 0.8 of the whole gradient to mitigate this a bit), OKLCH or LAB would solve this issue. The only reason I'm sticking with HSB, for now, is because it's just more convenient as it's natively supported both in graphic editors and SwiftUI, hope other models will get more widespread soon 🤞

    • @chidorirasenganz
      @chidorirasenganz 7 днів тому

      @ I hope so as well. I’m actually working on a SwiftUI Color Palette app that is built around OKLCH. So hopefully I can be start of a change 🙌

    • @mykolaharmash
      @mykolaharmash  7 днів тому +1

      Awesome, let me know once there is something to test 🔥

    • @chidorirasenganz
      @chidorirasenganz 7 днів тому

      @ Will do!

  • @doslass
    @doslass 10 днів тому

    Нічого не тямлю в розробці на IOS, але відео було дуже цікаво дивитись

  • @MadeInJack
    @MadeInJack 11 днів тому +14

    I would suggest to change the video title to something more mysterious/inviting, I only clicked to tell you this but wouldn't have clicked otherwise. Best of luck!

    • @CodComplex
      @CodComplex 11 днів тому +24

      You're the reason click bait and ambiguous titles exist, the title to this video is fine. Imagine actually knowing what the video is about instead of getting a random lucky dip. Crazy.
      Go watch shorts if you want mysterious content

    • @SebastianLN
      @SebastianLN 10 днів тому +8

      I disagree. Sure it might not satisfy the algorithm, but the straightforward title made me want to click it because it was just what I was looking for
      Why are you trying to encourage clickbait?

    • @HaidarSinisterra
      @HaidarSinisterra 10 днів тому +3

      I clicked on this video because it looked neat and straightforward. And it was! Nothing wrong in optimizing titles for engagement, but clickbait can get annoying. I like knowing what I'm going to watch.

    • @mykolaharmash
      @mykolaharmash  9 днів тому +11

      In general I prefer to underpromise in the title and overdeliver in the actual content. I think long term it will build trust and a more engaged audience, which is good for the algorithm as well. With this video specifically, YT shows CTR around 7%, maybe not stellar but above average.

    • @thailonlucasart
      @thailonlucasart 9 днів тому +2

      I just clicked because I knew what I would watch lol

  • @fedirdavydov
    @fedirdavydov 9 днів тому

    Hi! I am long time viewer! I love your videos and your app. I am a designer interested in helping open source projects with my work. I thought it would be cool to message you. If you are interested maybe let’s talk somewhere?

    • @mykolaharmash
      @mykolaharmash  9 днів тому

      Hey, thank you for watching, feel free to reach out, there way to contact me in the video description 🙌