Technologies I used to Code My Backendless App

  Рет қаралды 144,784

Ben Awad

Ben Awad

Жыл бұрын

voidpet.com/
I'm reviving my Discord and will be talking in it: / discord
#benawad #voidpet #VoidLog
----
Follow me online: voidpet.com/benawad

Пікірлер: 328
@CwithinC
@CwithinC 2 ай бұрын
Hi Ben, thank you for sharing this. I am an ex-product manager aspiring to break into software engineering / web dev. I've spent my first year full time learning how to code with Harvard CS50 and The Odin Project. Thank you for sharing this project and how you are going about building it. I want to build a similar app, so this video gave me a lot of direction on how and where to start. Wishing you continued success!
@jrtm9632
@jrtm9632 Жыл бұрын
Backendles???? Okay let’s start throwing books out the window
@theairaccumulator7144
@theairaccumulator7144 Жыл бұрын
I give it 1 day before a hack comes out
@simplyzetax
@simplyzetax Жыл бұрын
@@theairaccumulator7144 I think its been online for a couple months now
@jrtm9632
@jrtm9632 Жыл бұрын
@@simplyzetax I’m guessing he meant local hacks, but unlike GTA I don’t think this will get the attention of giga chad developers to figure out hacks. Although I admit, a change in the svgs to a giga chad path would be kinda funny to see.
@OM-bs7of
@OM-bs7of Жыл бұрын
It's not literal, backendless / serverless is a misnomer
@Github_tech_with_ty
@Github_tech_with_ty Жыл бұрын
You've never heard of cache?
@JayPoncedeLeon
@JayPoncedeLeon Жыл бұрын
Really great Ben! I've thought about using React Native for a project before, and it's great to see your experience and get a peak at some of the underlying code with your thoughts!
@KevinNaughtonJr
@KevinNaughtonJr Жыл бұрын
really love hearing about the behind the scenes of development of VoidPet Ben can't wait to hear more in future vids :)
@aseemlalfakawma5084
@aseemlalfakawma5084 Жыл бұрын
Great work Ben! Love the insight you provided, really inspirational. ❤
@freedomextremist7921
@freedomextremist7921 Жыл бұрын
If encryption is done client side it sounds like every state can be edited if you just locate the private key.
@bawad
@bawad Жыл бұрын
🤫
@geeshta
@geeshta Жыл бұрын
API called datetime can also be cheated with a proxy
@bawad
@bawad Жыл бұрын
@@geeshta 🤫
@AdisonCavani
@AdisonCavani Жыл бұрын
Hello from my rooted android :)
@alexandrepereira6522
@alexandrepereira6522 Жыл бұрын
Hey Ben, at a first glance your SVGs looks quite compact but I'm pretty sure you can shrink the file size even more, I personally recommend the svgo library. You can also think about doing some SVG sprite strategies if needed. I noticed that the background/garden have most elements repeated, you can also think about something to optimize down this path.
@traniel123456789
@traniel123456789 Жыл бұрын
SVGs are great. I have recently been working on an industrial scada system and ended up using SVGs to render live LIDAR data in the HMI for sensor calibration. It works surprisingly well.
@JEM_GG
@JEM_GG Жыл бұрын
Loved following this process Ben! Looking forward to trying the game out
@drewbird87
@drewbird87 Жыл бұрын
Ben! Thank you for sharing the process and the tech. 🙏
@addcoding8150
@addcoding8150 Жыл бұрын
Funfact: "zustand" is just german for "state". Same for "werkzeug" which is "tool-box". Idk why it is a thing but I'm always impressed how many names are just german in the end
@kilianendres7976
@kilianendres7976 Жыл бұрын
War halt wieder einer super kreativ haha.
@zachsanchez1644
@zachsanchez1644 Жыл бұрын
I love how half of these comments are legitimate suggestions / improvements. Building in public can attract so many helpful people! Great video covering your development/process regarding your app!
@LorenzoLeonardini
@LorenzoLeonardini Жыл бұрын
For the pet svg problem and the issue with having too many color combinations: you could export different-colored elements in a separate image, rendering them in layers. There should be some way to tint them. So you only have a handful of images in your app package, the only issue is that when you render a sprite you are actually rendering 4/5 images one on top of the others, but that might bet not that big of a problem
@hipno3477
@hipno3477 Жыл бұрын
I came across this problem as well in a unity project recently. The way i solved it was to use a single image/sprite and put every element i wanted to adjust in realtime either in the red, green, blue or alpha channel of the image. That way i could just tint each channel to a different color in a simple shader. Don't know if that approach would work in react but it's a pretty clean solution!
@traniel123456789
@traniel123456789 Жыл бұрын
CSS allows you to hue rotate the images very easily.
@JEsterCW
@JEsterCW Жыл бұрын
@@traniel123456789 but react native doesnt uses css and thats the problem
@wadecodez
@wadecodez Жыл бұрын
The problem is probably happening because he’s trying to persist too much data at once. He should remove objects and dom elements when they are not visible. Baking images would not only make it harder to update the layout but it adds a whole layer of complexity because images make separate network requests.
@deecewan
@deecewan Жыл бұрын
Yep react native does have tint - doing it in layers would also mean you still have individual pieces to animate too.
@pastenml
@pastenml Жыл бұрын
Thanks you for this Angular/Ionic tutorial. I had no idea you could write Angular apps in this way.
@abrahamjones3635
@abrahamjones3635 Жыл бұрын
I have had void pet for a month now and have enjoyed it so far, however I have a few suggestions. 1. Don't force the player to name aver pet they find, it gets annoying fast and players will eventually run out of good names. Naming your pet should be an optional thing instead. 2. Display the users void matter somewhere on the screen.
@turklerburada
@turklerburada Жыл бұрын
There is a random name generator on top right corner on name screen. I agree with the second one.
@Sprinkledsprinkles
@Sprinkledsprinkles Жыл бұрын
Yeah im tired of calling them things like "hydrogen monoxide poisoning"
@ayodeleabayomi3024
@ayodeleabayomi3024 Жыл бұрын
i think the idea is make it more deliberate..
@anshnanda
@anshnanda Жыл бұрын
random name generator for sure
@Uchiha-_-_-
@Uchiha-_-_- Жыл бұрын
I just name them whatever the emotion is
@mugen153
@mugen153 Жыл бұрын
@bawad, two optimizations on concurrent display of SVG-s on screen: 1. Render blank components in place of SVG when it is outside of viewport. With grid item lists you don't have to check every item, using math should do the trick. 2. If you would still need to convert to images, I am sure you could generate PNG assets from SVG-s at runtime with some library when you know the device screen dimensions (so that PNG-s are of an appropriate resolution for every device). You could do this on first load and cache the images to the device storage.
@wadecodez
@wadecodez Жыл бұрын
I would save the PNG rendering for absolute worst case scenario. Caching images is a huge pain because it makes separate network requests and he looses flexibility to manipulate svg paths. Selectively rendering content and manual garbage collection is the way to go.
@mugen153
@mugen153 Жыл бұрын
@@wadecodez Why should caching (storing) the images to the device (local) storage make any network requests at all? I agree with you on SVG paths manipulation though.
@TMinusRecords
@TMinusRecords Жыл бұрын
The let go button looks like a positive action rather than a negative one with the star ball icon, to the point where I misread it as "let's go" and took it to mean they spend a while at a park or something and then come back. Permanently releasing pets should require more of a deliberate action, and be framed negatively
@damionmurray8244
@damionmurray8244 Жыл бұрын
There are a few strategies you can use optimize your SVGs. For example, plotting the vertices that define the paths of your keyframes on a grid so that their coordinate values fall on whole numbers actually speeds up rendering. You could probably reduce the number of points your SVGs use as well. There are programs that do a good job of optimization, but if you can get a vector artist that knows how to do that manually they are likely to do a better job (for example, vector tools typically create circles using a cubic bezier curve with 12 control points, a vector artist with an eye for optimization can create near perfect circles using 9 control points). If you ultimately opt to migrate from vector to raster graphics go with PNGs. If you're clever about it, you don't have to generate thousands of variants of a Void pet. Break each Void pet design into component sprites that group/isolate shapes with the same color (think layers in Photoshop), then whip up some logic to apply palette swaps to each grouping (pretty easy to do, just change the R,G,B color channels and leave the Alpha channel alone) and then make a composite for a given variant.
@TheATOMICGOBLIN
@TheATOMICGOBLIN Жыл бұрын
Thanks for the video Ben, I recently fiddled with expo and had the same conclusion. Much better than it was in 2019!
@CardinalHijack
@CardinalHijack Жыл бұрын
Thanks for sharing. Inspiring me to get back to my side projects
@rog0079
@rog0079 Жыл бұрын
Great project ben! A request, could you please create a react native playlist with advance topics like RecyclerListView, Reanimated, Skia and other advance stuff, it would really help us out here! Anyway great job!!!
@gosnooky
@gosnooky Жыл бұрын
Damn... that node_modules directory must have its own gravity well.
@FoodElitist
@FoodElitist Жыл бұрын
Pls more insight videos Ben 😊 I really like that you show production code. You should be proud! What about the business behind voidpet?
@johndorian473
@johndorian473 Жыл бұрын
I love watching these log videos even though I don't understand the techy stuff
@IvyCatholic
@IvyCatholic Жыл бұрын
Ben, thanks for this video and all your great content. I made an app also with RN and expo called "TriviaLinked" and your discussion of animations/sounds is going to be really helpful as I try to improve the game! Thank you thank you thank you!
@bagusamrullah4371
@bagusamrullah4371 Жыл бұрын
So Impressed by how React Native can be used to build project like this
@lolnein7216
@lolnein7216 Жыл бұрын
I think discord on phone is react native too
@feuerherz007
@feuerherz007 Жыл бұрын
​@@lolnein7216 and it sucks ... maybe i just hate the ui and how not smooth it is
@SogMosee
@SogMosee Жыл бұрын
and tesla app
@rickharold7884
@rickharold7884 Жыл бұрын
Super cool. Thanks for sharing ,love it
Жыл бұрын
Nice, coding an app with Expo and React right now, glad to see you recommend the same things I'm using 👍
@adivmt
@adivmt Жыл бұрын
Can we have a firebase notification with expo cli app ?
@ascourter
@ascourter Жыл бұрын
Looks great! The SVGs definitely look crisp. Downloaded the app and works well on a Pixel 6!
@chabonrandom
@chabonrandom Жыл бұрын
Hey Ben, awesome as ever! Can you post a video with your though proccess of your design ideas and implementations? That would be super cool! Liked as always, keep it up!
@kartikgarasia5685
@kartikgarasia5685 Жыл бұрын
Projet looks great ben! Why you choose not to use react-lottie for all the SVG animations? With help of after effects you can create even complicated animations for the pets. Also you can manipulate pet colors at runtime so that you can create even more variations by just looping them with different color values.
@bawad
@bawad Жыл бұрын
I like this idea
@theairaccumulator7144
@theairaccumulator7144 Жыл бұрын
Yup you can just have a base PNG and then overlay colors on it. Also unity would've handled this super basic game extremely easily while running on even the shittiest phone, classic web dev trying to make everything web moment.
@ShighetariVlogs
@ShighetariVlogs Жыл бұрын
@@theairaccumulator7144 I enjoy the concept of re-inventing the wheel! Your comment is reminiscent of soviet era logic *slips off sassy pants*
@rake1840
@rake1840 Жыл бұрын
@@ShighetariVlogs you single?
@ShighetariVlogs
@ShighetariVlogs Жыл бұрын
@@rake1840 nope, dating a data science queen 💜 I am lucky & blessed 🥹 maybe if she sees my KZbin comment history I’ll become single tho 😂
@Menta_
@Menta_ Жыл бұрын
"zustand" is a german word and my brain had to double check when you pronounced it - thanks for the insight into your stack btw :)
@vezquex
@vezquex Жыл бұрын
The radial menu is a nice touch.
@Liam.Stevens
@Liam.Stevens Жыл бұрын
Thanks for info. What tool did you use to draw the SVGs (output in svg format)
@user-bg9fg3ug6z
@user-bg9fg3ug6z Жыл бұрын
That's amazing work!
@benrobo8
@benrobo8 Жыл бұрын
Great video Ben.. I saw you made used of the `tw` package. What the difference between using that and the default tailwind setup a d config for react-natjve app? Isn't it the same, or is there any difference towards using that package?
@Mithrandido
@Mithrandido Жыл бұрын
Amazing work Ben. I am doing closed testing on my startup app with React Native. Just curious, what did you use for the notifications?
@saeedfarhadi1773
@saeedfarhadi1773 Жыл бұрын
This is just great. One small issue I had with the app is when I wanna close a menu (like the main menu or the one for nourishing the plants) I instinctively tap outside the menu (on the dark overlay behind it) but that doesn't close it.
@bawad
@bawad Жыл бұрын
Adding this now
@maggitrymbill
@maggitrymbill Жыл бұрын
Highly recommend react-native-skia instead of svg's for animations and vectors in general. Sure, it's not officially production ready but it's damn stable, stays away from the js thread and it's relatively easy to convert svg's to it.
@nikbivation
@nikbivation Жыл бұрын
thank you for sharing this!
@fnfal113
@fnfal113 Жыл бұрын
Damn, great to see React Native has been utilized for this project which I wasn't expecting since its a game, huge fan of react native and this inspires me soon to make more apps using react native
@captainnoyaux
@captainnoyaux Жыл бұрын
yup I took the same choices regarding cheating some aspects of my game, if it becomes a massive hit you can still correct the weak parts (if you keep track of them, or just know which part is weak). Most of the users won't try to cheat the system
@henriquematias1986
@henriquematias1986 Жыл бұрын
Thanks for the video, really cool stuff... How did you / expoert the animations for the SVGS?
@SuperEssenceOfficial
@SuperEssenceOfficial Жыл бұрын
lol the steam effect is like a default particle system in unity. would take 5 minutes and no code
@ndukachukz8067
@ndukachukz8067 Жыл бұрын
please make a video on how you build measurable optimized mobile applications and how you would improve or apply measures/logging and optimizations to existing applications
@BitCloud047
@BitCloud047 Жыл бұрын
Very cool man! Just downloaded it!!
@windmaomao
@windmaomao Жыл бұрын
Thanks for the video, I enjoy watching it Ben. Just a quick question, why you say backendless, which part I need to store information? I don't think I got this part. You mean registration?
@javierpizarroortega1891
@javierpizarroortega1891 Жыл бұрын
Congratz on the project ! Looks pretty dope ! Think you will be making tutorial in the future, or no time? hahah Greetings from Chile!
@wlockuz4467
@wlockuz4467 Жыл бұрын
I got a couple of questions, Did you look into Flutter before you decided on the framework? Have you tried Rive for animations?
@rakebullet5200
@rakebullet5200 Жыл бұрын
Yes, it would be interesting to know if you looked at Flutter at all.
@rakeshpk4991
@rakeshpk4991 9 ай бұрын
Ver Helpful. Thanks 🎉
@bripbrap
@bripbrap Жыл бұрын
stupid idea... could you not have a local build step on first launch that exports all the svg's at the correct scale to a texture atlas or something?
@DannyLoera
@DannyLoera Жыл бұрын
Am I correct in assuming the graphics are all done with UI elements? If so, why did you opt for this instead of using a graphics library?
@MirkoSaugo
@MirkoSaugo Жыл бұрын
I suggest u to set the paths and baseUrl options in the tsconfig file in order to have a clean import inside the component
@SiOfSuBo
@SiOfSuBo Жыл бұрын
You could use the api call to tell the UTC time on game launch so you cant cheat and go to the future in any part of the app, not only the battle pass
@krishgarg2806
@krishgarg2806 Жыл бұрын
i was thinking similarly, like on launch just check if the device time is around the API time, if it is, then Date.now() can be trusted, otherwise use the api.
@Michko_
@Michko_ Жыл бұрын
but he said that he does not care if people cheat, he only cares about the battle pass
@JoshuaMcFarland
@JoshuaMcFarland Жыл бұрын
This works if progressing while offline isn't a feature. It kind of sounded like from the video that offline was though.
@MyzIcyBeatz
@MyzIcyBeatz Жыл бұрын
Thank you Ben
@jakescript_
@jakescript_ Жыл бұрын
Hey Ben, just wanted to say however data is being stored locally, if the app data is transferred to a new device. All user data is transferred as well. My girlfriend got a new phone and was happily surprised when she saw that all her pets saved transferring her data to her new device.
@bawad
@bawad Жыл бұрын
Oh sweet, didn't realize this
@MrErdkamp
@MrErdkamp Жыл бұрын
Can't you store some data in the Google Play / Game Center account? I Never used it but seems that some games use it to store state between devices. App is looking great!
@kymzTech
@kymzTech Жыл бұрын
You could make use of Lottie files for the smoking animation
@geofferyblackard5841
@geofferyblackard5841 Жыл бұрын
Thinking about how tool like RPG maker handles animations could you create a sprite map for the pets this single image would house all movements?
@Cappell7
@Cappell7 Жыл бұрын
What did you use to style the UI? I starting a new large React native project and was wondering what is the best way to style in react native expo. I've seen people use tailwind with native wind?
@SonAyoD
@SonAyoD Жыл бұрын
Amazing content!
@ore_bear8045
@ore_bear8045 Жыл бұрын
Given that the data users store can be sensitive, if you had stored the data in a database /cloud service, do you know which service/setup you would have chosen?
@alvapazz
@alvapazz Жыл бұрын
Love it thanks
@Colstonewall
@Colstonewall Жыл бұрын
"ENTER THE VOID!!!"
@jatinhemnani1029
@jatinhemnani1029 Жыл бұрын
Really great Ben
@Narc0YT
@Narc0YT Жыл бұрын
For the colours and pets, what about using a PNG and then creating a layering algorithm to apply the separate colours to specific areas? Idk, maybe it's less efficient, I guess you lose the possibility to scale the image
@NithinJune
@NithinJune Жыл бұрын
I missed watching your devlogs
@RealEngineer
@RealEngineer Жыл бұрын
Man.. And me that was naming my pets in SQL statements hoping they would align up in the void somewhere to drop your table.
@mrthinger
@mrthinger Жыл бұрын
For the trusted time source, someone could still cheat by having their own DNS server point to an IP they own. So you could make the time return whatever you want still.
@ritikjain4811
@ritikjain4811 Жыл бұрын
How do you test on different devices? Do you have your own device lab or do you use emulators/simulators
@jatin_nagar
@jatin_nagar Жыл бұрын
You can try reducing windowSize to 3 or 2 to improve performance on terrain screen
@ayyasudeen3118
@ayyasudeen3118 Жыл бұрын
Instead of Async Storage you could have used react-native-mmkv, which is faster. Any reason why you choose Async Storage over mmkv or other packages?
@heyitspieter
@heyitspieter Жыл бұрын
Hi! What did you use to create the UI layout for the app website?
@damionmurray8244
@damionmurray8244 Жыл бұрын
7:10 The SVB joke about SVGs is gold.
@riolly
@riolly Жыл бұрын
There is no framer-motion equivalent for react native. So yeah, I guess reanimated is the go-to for react native.
@OverAndOverAndOver
@OverAndOverAndOver Жыл бұрын
1:29 "well, I take a sensible approach and *dont* harvest your data"
@chefk5
@chefk5 Жыл бұрын
You could use flashlist instead of recycler list view
@seaweedglob
@seaweedglob Жыл бұрын
"They're lookin like Silicon Valley Bank" 😂 Too soon dude
@evpn
@evpn Жыл бұрын
Is it possible to render SVG to image buffers on the fly for menus where the pets are static?
@lolotronop
@lolotronop Жыл бұрын
It sounds like you are using the Adobe voice enhance ai thingy. Nice! Much better then being stuck with a roomy recording
@maskman4821
@maskman4821 Жыл бұрын
Pretty awesome, this is a professional game, you did a great job 👍😘😀😍
@yerneroneroipas8668
@yerneroneroipas8668 Жыл бұрын
not the silicon valley bank dis at 7:10 lmao
@tabah9028
@tabah9028 Жыл бұрын
As a German it is always funny how "Zustand" gets pronounced
@lukaswerner4390
@lukaswerner4390 Жыл бұрын
How's the build experience on expo? Have they made local builds possible yet?
@FunctionGermany
@FunctionGermany Жыл бұрын
couldn't the time API thing be easily circumvented by using a local DNS and installing self-signed TLS certs on the device?
@69thSpaceMonkey
@69thSpaceMonkey 4 ай бұрын
I'm curious what happens if someone buys the in-app bundle but then deletes the app at a later date, does the user lose the in-app purchase benefits when they reinstall the app?
@_chappie_
@_chappie_ Жыл бұрын
Wouldn't decompiling the app reveal your encryption key though?
@Corythehausbaus
@Corythehausbaus Жыл бұрын
Ben can you talk about how to get into backend . If I were to build my own website and host it somewhere
@tom-moroney
@tom-moroney Жыл бұрын
Can you make the haptic feedback less aggressive. My phone practically jumps out of my hand every time I click a button. If you could just make the strength of the vibrations weaker on Android, that would be great.
@mtnrabi
@mtnrabi Жыл бұрын
Nice cover!! Can you explain how do you track on errors users get and monitoring in general? (Since there is no backend)
@Hiro2k10
@Hiro2k10 Жыл бұрын
Check out RN Sentry
@m1thrandir
@m1thrandir Жыл бұрын
What about FlashList by shopify instead of recycler list view?
@while-loop
@while-loop Жыл бұрын
Revenuecat is a godsend
@EndoTheBear
@EndoTheBear Жыл бұрын
What about a way to connect the apps to the web browser game so you can do all the functionalities you could do in the web game with the pets from the app and vice-versa? 👀
@itsanishjain
@itsanishjain Жыл бұрын
Best dev of our time
@juangutierrezgutierrez4711
@juangutierrezgutierrez4711 Жыл бұрын
Is that the default vs code theme? Or what is that?
@aniketjadhav2569
@aniketjadhav2569 Жыл бұрын
What have you used for designing UI/UX?
@quickmaths4762
@quickmaths4762 Жыл бұрын
You said the app is an offline-app. But in the end you said you make an API call to the time API. So it‘s like 95% offline?
@StephanedeMatos
@StephanedeMatos Жыл бұрын
I guess you have to be online to purchase stuffs in the store
@quickmaths4762
@quickmaths4762 Жыл бұрын
@@StephanedeMatos Yeah true. Probably requires some extra code to check whether the connection succeeded and react accordingly if not (don't keep trying to send requests, just display "no internet connection")
@mostafaelkaramany1363
@mostafaelkaramany1363 Жыл бұрын
A piece of advice that helped me in my React Native projects: use a module resolver.
@readysetgo7988
@readysetgo7988 7 ай бұрын
Did you consider a JS game library like Phaser 3?
@neociber24
@neociber24 Жыл бұрын
For what you said sounds like while the project grow React Native may not be able to handle it.
Serverless Doesn't Make Sense
10:13
Ben Awad
Рет қаралды 362 М.
How I Designed my App that Got 100k Downloads
7:44
Ben Awad
Рет қаралды 102 М.
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 27 МЛН
В ДЕТСТВЕ СТРОИШЬ ДОМ ПОД СТОЛОМ
00:17
SIDELNIKOVVV
Рет қаралды 3,6 МЛН
Hot Ball ASMR #asmr #asmrsounds #satisfying #relaxing #satisfyingvideo
00:19
Oddly Satisfying
Рет қаралды 28 МЛН
Китайка и Пчелка 10 серия😂😆
00:19
KITAYKA
Рет қаралды 1,6 МЛН
The New React Native Architecture
25:59
Theo - t3․gg
Рет қаралды 126 М.
Why You Shouldn't Nest Your Code
8:30
CodeAesthetic
Рет қаралды 2,6 МЛН
What 3 months of nonstop game dev looks like
9:00
Ben Awad
Рет қаралды 184 М.
Coding Interview with Dan Abramov
58:20
Ben Awad
Рет қаралды 638 М.
State Managers Are Making Your Code Worse In React
13:33
Web Dev Simplified
Рет қаралды 153 М.
The Story of Next.js
12:13
uidotdev
Рет қаралды 537 М.
I don't *want* to use React Native
6:31
Ben Awad
Рет қаралды 180 М.
These Coding Projects Give You An Unfair Advantage
14:39
Harkirat Singh
Рет қаралды 298 М.
My animations are faster than Ben Awad's (and so should yours)
12:04
William Candillon
Рет қаралды 35 М.
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 3,8 МЛН
Карточка Зарядка 📱 ( @ArshSoni )
0:23
EpicShortsRussia
Рет қаралды 750 М.
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 11 МЛН
😱НОУТБУК СОСЕДКИ😱
0:30
OMG DEN
Рет қаралды 3,4 МЛН
Где раздвижные смартфоны ?
0:49
Не шарю!
Рет қаралды 741 М.
сюрприз
1:00
Capex0
Рет қаралды 1,1 МЛН