Android P Releases Its Final Beta

Share if the site was helpful

Android P Releases Its Final Beta

While Android Oreo is just starting to hit its stride, Android P is making news too.  This week Google released the final beta preview of Android P before it’s official launch.  We’ve seen a few beta previews so far this year, and this one should be even closer to what P will look like when it launches.

According to Android VP Dave Burke this beta includes “final system behaviors” meaning Google’s new gesture-based navigation will be locked in and shipping with Android 9.0.  Of course there’s always room for improvement, and that’s a large reason betas exist, but this should be stable for installation on your main phone.  Google hasn’t mentioned any known bugs, so if you have a phone that can handle it out get the beta and let us know what you think!

What’s new in P?

We’ve talked before about Android P and what features it has to offer.  Spoiler: they’re awesome.  P offers a series of features that revolve around the idea of predictive analytics.

There’s an adaptive battery that takes into account what time of day you typically are running your apps, and if it doesn’t think you’ll be using them any time soon it shuts them off to save energy.  Couple this with the screen brightness which auto adjusts based on what you typically set it to throughout the day, and you’re looking at a much longer lasting battery life.

Apart from performance improvements, we also have completely new features that enable us to experience things differently.  One I’ve talked about before at length is Wi-Fi RTT.  Round Trip Time is a method of really getting to know your exact current location.  It’s accurate within about a meter, and does so by triangulating between multiple Wi-Fi access points nearby.  This improved location methodology offers some cool opportunities that just depend on how creative developers want to get.

Privacy Improvements:

There are also security improvements that come with P, and in an everchanging world of privacy that’s a key improvement.  Have you ever gotten a notification saying an app was running in the background when you didn’t think you’d been using it?  How about having an app crash in the background even though you haven’t opened it in ages?  That’s never a good thing to see.  P will prevent idle apps from performing actions such as accessing your camera (yes this is a thing!!).  P offers a series of security upgrades that limit what apps can do in the background in an effort to help protect user privacy.

How to get P?

First off, I’m so ready to stop calling it P and use it’s actual name. Unfortunately we’ll have to wait a little longer for that.  But if you want to get the beta on your phone today you can check it out on Android’s developer website here.  Give it a try and let us know your thoughts on it!  We’ll be sure to continue writing about developments in the software, so stay tuned for more.

 

 

 

Oreo: Coming Soon To A Phone Near You?

Share if the site was helpful

Oreo: Coming Soon To A Phone Near You?

It’s been just over 10 months since Android’s newest version (Oreo) began rolling out to devices. Almost a year, so let’s take a second to see how it’s doing. Well…it may be performing really well in terms of quality, but quantity is lacking.

How bad are we talking?

Every month Google releases Android’s distribution numbers showing how many devices are running each version of their operation system, and according to July’s numbers this year Oreo is active on 12.1% of active devices. As a point of reference, that puts Oreo at the 4th place position behind Nougat, Marshmallow, and Lollipop. There’s no denying this is a pretty sluggish speed for rolling things out (but to be fair it’s 0.4% ahead of where Nougat was during it’s growth phase).

So the trends show that new Android versions typically take more than a year to become the most used release, but this begs the question of why? Oreo offers some pretty cool new features such as picture in picture app usage and notification channels. Apart from battery life there aren’t too many reasons user’s would want to avoid upgrading to the newly offered software. But the issue is that it’s not actually offered to all users. There have been rollout calendars following which phones have adopted Oreo since it’s release, and the list of devices has grown slowly up until this month.

It’s Not The User’s Fault

A large part of why device updates are so slow is how fragmented the Android market currently is. Manufacturers often won’t bother with updating older pieces of hardware because it takes time and energy on their part that isn’t being put towards everything new. The end result is user’s being left high and dry. Even some new devices are hesitant to adopt the new software until it’s tried and true. User’s are able to flash their devices and test out other softwares if they so desire, but it’s not exactly mainstream to do so (as cool as it is!)

The bright side is that if you look at things over time they’re starting to ramp up exponentially. 5 months ago Oreo’s adoption rate was hovering around 1% (5 months after it’s release). Things were looking abysmal then even compared to other version’s growth rates, but thanks to a wave of updates this past month things are starting to look back on track.

Statistics Aren’t Perfect

It’s also important to note that the Android Developer dashboard I linked above relies heavily on Google’s Play Store to collect its data. This means that not every device running a version of Android is actually being accounted for in these numbers. The Play Store currently isn’t available in China (A $35 billion/year app market to be missing), and there are a few other factors at play attributing to uncounted devices. All the same it’s clear that Oreo is at about the same speed of rolling out as Nougat was, and we’ll likely see it enter the top 3 within the next few months. I for one am already looking forward to Android P though 🙂

Have you gotten Oreo on your device yet? What are your thoughts on either it’s performance or it’s rollout speed? Let us know in the comments below!

Google Fined…For Giving Users Google?

Share if the site was helpful

Google Fined…For Giving Users Google?

 

Almost everyone worldwide knows about the divide between Android and iOS.  How could you not? We hear people brag about how their operating system is in every way superior to the other and people are fools for giving business to the other end of the spectrum.   But competition happens on different tiers and the E.U. recently decided that Google has been unfairly monopolizing the market.  The cost of this? $5 billion.

Some background:

The E.U has fined Google a record €4.34bn for its use of the Android operating system to “illegally cement its dominant position” in search.  The argument goes that while Google has competition on the highest tier of competition (Android vs iOS), once a user chooses to purchase an Android phone their options are severely limited.  As a phone manufacturer if you want the Google Play Store on your phones (which you definitely do), then you also have to take the Chrome browser and Google Search along with it.

Google operating systems coming preloaded with their own associated software…sounds unfair right?  Margarethe Vestager, The European Commissioner for Competition, says that it is.  Vestager argues that Google’s withholding of the Play Store except as a package deal essentially locks down the market for other search engines.  Google has also made payments to large manufacturers as part of an agreement to exclusively pre-install the Google Search app on their devices.

The commissioner has acknowledged that Android in no way forbids users from downloading other browsers if their interested (last year Opera Mini and Firefox were downloaded more than 100 million times).  She asserts that this is far too small though since few people take the action to actively change their default settings.   Google holds the real decision making power, a sign of monopoly, not free markets.

Google’s response:

So we have competition at the operating system level, and competition at the browser level.  Google has responded saying that there’s a level far more important to the world: the app level.  While the Google Play Store is owned by Google, millions of developers contribute and share their creations on it.  Sundar Pichai, Google’s CEO, released a written statement yesterday explaining how unjust the E.U. sanction really is, as Google has taken steps to encourage a competitive market.

“Rapid innovation, wide choice, and falling prices are classic hallmarks of robust competition and Android has enabled all of them,” he wrote.  With such a small barrier to entry for developers/companies who want to share their apps with the world, Android should be seen as a free market advocate, not a giant that is terrorizing our decisions.

This is where tiers of competition become crucial in the discussion.  Does google have a fair amount of competition as an operating system?  Do they have competition as a search engine/browser?  Does their Play Store have other serious contenders trying to take its place?

How hard is it to Switch?

Sundar pointed out (with a short video), that user’s can delete their default browser and download another (such as Opera Mini) within 30 seconds.  Hardly a barrier to entry in terms of difficulty.  The monopoly discussion then becomes is it reasonable to ask users to take this course of action to be presented with other options.  100 million people is a lot, but out of 2 billion worldwide android user’s it’s not a majority.  Still, if users want to find another service, the options are there.

As crazy as it is, $5 billion is a raindrop in Google’s budget.  But it’s not really about the money (yes it is…), it’s about the image that Android upholds.  As a developer that has shared my creations on the Play Store I’ve seen it encourage users to build and share with the world.   Google is an industry giant, of that there is no doubt, and Sundar signed off saying that they intent to appeal.  Stay tuned and we’ll be sure to write about where things go from here.

What are your thoughts on Google’s role as a Monopoly terror or a free market advocate?  Let us know in the comments below!

Apps Need Room To Breathe!

Share if the site was helpful

Apps Need Room To Breathe!

Android is a complex operating system.  There’s a lot more variable when developer for Android.  Things are unpredictable when it comes to knowing what phone your user will be on.  There’s literally no limit to how many different kinds of phones could be running Android on a given day.  If you don’t know what you’re doing this can be dangerous for your layouts.

How so?  Doesn’t everything work the same from phone to phone?  Well, no actually.  Things function very similarly, but different phones have different characteristics that can drastically change a user’s experience.  Take screen size for example.  You could design an app and have one user download it on a phone with a 4’’ screen and another on a 6’’ screen.  This may not sound like a huge difference (2 inches is rarely a big decider life), but when it comes to a screen size that’s literally 50% more screen space on one device than another!

How things can go very, very wrong:

If you don’t take different screen sizes into account, then users will most likely miss out on important info. When you’re first learning about how to develop Android apps you’ll most likely use LinearLayout a lot to organize your apps.  This layout takes one view (text, image, button, etc.) and then lines up the next one in a list side by side.  Or you can change it to go vertically.  Either way the end result is a neat row/column of views.  Here’s an image to help you visualize:

But what happens if when your developing you only test the layout on your phone (let’s assume its huge).  Things may look great to you, but when you publish the app and someone with a smaller phone uses it this is what they might see:

How we can prep for things to go very, very wrong:

Trust me as I made this mistake on the first app I ever published: It’s not a fun mistake to make.  Your app is a work of art.  It’s something that you created from nothing and want to show off to your friends, family, and the world.  So when you have someone download it and instantly their greeted with a funky looking layout…well it’s not the best feeling.  Luckily, we can learn from our mistakes and prep for them in the future!

There are situations where you want to use LinearLayout and there are situations where its best to avoid it.  Sometimes you may want to keep the row/column but add scrolling capability to it instead.  Android developers have experienced all these scenarios, and that’s why there’s more options than just LinearLayout.

Layouts like ConstraintLayout and RelativeLayout allow you to position views in relation to one another as well as to their parent.  So you could position pictures on your screen to “attach” to the right or left side, and make your layout look a lot more professional.  That’s of course just the tip of the iceberg though.  There are different screen densities to account for when choosing what images to use.  And you can also have portions of your screen appear/disappear by using fragments. Don’t worry we’ll have posts on both of these topics coming up soon!

If you’re interested in learning more about styling your apps for different screen sizes and how to make your layouts ready for professional use, checkout Phonlab’s Android App Developer course!

 

Google Pay: Caring Is Sharing

Share if the site was helpful

Google Pay: Sharing Is Caring

Earlier this year Android Pay and Google Wallet combined forces to create Google Pay, a one-step payment process for Android users.  The app has featured online payments with certain websites/apps by initially linking a credit card and then checking out in the future with one click. More technologically impressive it uses NFC (Near Field Communication) to allow users to hold up their phone at a cash register and buy things in person too.

Google Pay seeks to make users lives easier by removing the hassle of reaching into you wallet/entering checkout info every time you buy something.  Yet the adoption rate for it has been…sub-optimal.  So far we’ve seen about 6% of total smartphone users give Google Pay a try.  It’s a growing number, but it’s still not very big.  If it’s because Google Pay doesn’t do enough for users, then it may start growing faster.

So what’s new?

Today Google announced some new features for the app that make it more useful.  The biggest of these is that you can now use Google Pay to send money to friends.  With apps like Venmo, PayPal, and the CashApp this is nothing new, but it’s necessary for the Google Pay to become relevant as it’s one of the primary ways younger generations pay one another.

And if you haven’t used cash sharing apps like these before GET ONE.  They’re essentially the staples easy button for splitting bills at restaurants and paying back friends.   Google Pay has a challenge of gaining traction in this sector since there are already a few established apps and sharing apps are only as useful as their adoption rate.  But then again, it’s Google and they choose what apps comes preloaded on Android phones.  Chances are they’ll be alright.

But wait there’s more!

Another new upgrade for the app is that it will be supporting boarding passes and event tickets.  Companies like Southwest and Ticketmaster will be incorporated into the app to allow users to take one step closer to a one-stop shop.  These tickets will update with real time information if something like a flight delay takes place, and they’ll work alongside any loyalty cards you have.

The updated Google Pay app is rolling out today, but it will be a few weeks until it reaches everyone who uses it.  The long term goal is clearly for Google Pay to become your go to app for any circumstances. I’m certain we’ll see some more new features come up in the news soon, and I’m also sure you’ll be able to read about them here!

What are your thoughts on Google Pay’s changes?  Is it still lacking something essential for success?  Let us know in the comments below.

The Six Degrees Of Activity Lifecycles

Share if the site was helpful

The Six Degrees Of Activity Lifecycles

As an Android developer, one of the most fundamental concepts that you’ll learn about is Activities.  Activities are a Java class that focus on a single thing that users can do.  Many involve user interactions, and in most apps on your phone you can think of each page of the app as an activity.  Open Gmail and see your list of recent messages? Activity.  Click on one of those messages to open it in a new page?  Activity.

Activities are everywhere in Android development, yet many developers that are just starting out don’t fully understand how they function.  You might be able to get by without a full understanding, but this can be lethal to your app as it expands and becomes more complicated.  Lack of understanding opens up Pandora’s box for things to go wrong with memory leaks and debugging errors down the road.

Diving In:

So let’s take a blog post to discuss the Activity Lifecycle in a little detail.  We won’t get stuck in the weeds, but cover the basics enough that you understand what’s going on under the hood and can prep for smooth app development.

Just like humans have a lifecycle from birth to death, apps have a lifecycle they follow from when their first launched to when the user closes them.  There are six methods that can be called to change the state of an activity in Android:  onCreate(), onStart(), onResume(), onPause(), onStop(), and onDestroy().  At first glance these may seem similar if not identical to one another, but understanding the differences is key to a successful user experience.

onCreate():

This is the first of the 6 lifecycle methods called in an activity, and its invoked when (you guessed it) the activity is created.  In this method startup logic that should only happen once during an activity’s life takes place.  Examples of this might be to bind data to a list, or to instantiate class-scope variables.  The bottom line is that this is called once and only once.

onStart():  

Immediately after onCreate() comes onStart(). The start state of an activity occurs when it is made visible to the user.  This is where logic goes to prep the activity to enter the foreground and become interactive.  In other words the User Interface (UI) is taken care of here.

onResume():

Yes I know, it’s three different methods whose names make it sound like they all do the same thing.  Here’s the key difference with onResume() though.  onResume is called when an app has already been created and comes into (or back into) the foreground.  An activity is constantly interactive as long as it’s in the foreground for the user.

But what if your app includes a pop up message over the activity?  Well now that pop up has the foreground.  Your activity from before will enter the onPause() state (keep reading!) until that pop up goes away.  Once it does your app will resume, and thus the onResume() method will be called again.   For example, let’s say your playing a game and an alert interrupts it.  Obviously we don’t want the game to keep going when the user can’t see it, because that would be incredibly frustrating when the user returns and finds out they died while they were way.   So we call onPause() when an activity loses focus and certain resources need to either be cleared or put on hold.

onPause():

There’s really not too much more to this one other than what I said before.  It tags in and out with onResume() to create/delete resources when needed depending on if a user has focus.  It’s where the magic happens if you do things right, and where things go noticeably wrong if you don’t.

onStop():

When your activity is no longer visible, it has stopped.  This is different from onPause() in that your activity is entirely shrouded.  Instead of a pop-up that might cover half of the screen, a new activity may have taken place and covered your current one completely.  This is essentially where the app has can completely remove unused resources that the user won’t need when returning to the activity again.

onDestroy():

And finally comes our 6th method that wraps everything up.  This is called right before an Activity is destroyed, and as such you want nothing left hanging around.  If you forget to close up a loose end in onDestroy(), your app may begin to suffer from memory leaks and eventually bog things down.  Bottom line is that all resources should be released here if they weren’t in onStop().

These 6 methods essentially bounce the user between the two states of in the user’s foreground and in their background, but there are intricacies that go a lot deeper between them.  As such properly knowing when to implement each of them can be a life saver for your apps, and a huge time saver for you when you’re building things out and want to know what’s going wrong.

If you felt lost at all along the way of this blog, then you should check out Phonlab’s Android App Developer Course!  It’s a great way to go from writing your very first line of code up to publishing our own apps on the Play Store.

Samsung Is A Go For Android Go

Share if the site was helpful

Samsung Is A Go For Android Go

We’ve talked about Android Go a few times here before.  It’s Google’s movement to bring budget phones to the rest of the world by stripping down the software and limiting specs.  There’s been a bit of buzz around the movement recently, and earlier this week a leak has revealed some details about Samsung coming into play.

The Specs:

That’s right, Samsung may be getting into the budget phone game with a 5-inch display and Samsung’s mid-range Exynos 7570 SoC processor.  For reference this compares pretty similarly to Samsung’s Galaxy J3 in terms of size and capability (see the following image).  The phone will come with 1GB RAM and 16GB of storage as well, following the Android Go system of making things high quality but low memory.  And of course, as with other Android Go phones the operating system version will be Android 8.0 (Oreo).

The SamMobile sources behind this leak said that the new phone (model name SM-J260G) is currently being tested in dozens of markets around the world including the UK. And everything about this leak falls in line with earlier reports that Samsung is testing three new mid-range smartphones.  Not much has been revealed about these other than their model names (SM-J260F, SM-J260G, and SM-J260M) and that they will all most likely be part of the Android Go movement.  So it seems Samsung is ready to dive into Go headfirst.

Android Go’s Future:

Android Go was announced back at MWC in February this year, and since then we’ve seen multiple phones get in on the action.  The idea is to bring incredibly affordable phones to people that otherwise couldn’t afford smartphones, but still give them all the newest in terms of software.  The was this is possible is by limiting other specs on the phone and putting in less preloaded apps (not exactly a bad thing!). Android Go is just getting started, but it aims to provide phones for the next billion users around the world, and I’m excited to see where it’ll go from here.

What are your thoughts on the new Samsung phone that we may be seeing soon?  Let us know in the comments below!

Improved Security Or Less Freedom? APK Updates

Share if the site was helpful

Improved Security Or Less Freedom? APK Updates

Earlier this week a small change rolled out to the Google Play Store.  It’s one that you likely won’t even notice, but for those who have it’s tough to decide whether the shift is good or bad.  What change?  Just a small string of metadata for apps.

Google is adding a security string of metadata to all Android APKs (the file format android apps are stored in).  This string will come along with the usual app and be used to verify that apps are distributed through the Play Store or another approved channel.

But why?

The reasoning is (of course) for security purposes.  Users will be able to verify that the apps their downloading aren’t malicious apps seeking to wreak havoc on your system.  There are plenty of apps that have posed as secure looking every-day apps when in reality they were doing other things under the hood (such as mining bitcoin).  This new metadata will supposedly help catch apps like this and ensure that any apps users are downloading are coming from a safe place.

We’ve talked before about how android apps are pretty secure through their information silos.  Apps must use a content provider/resolver to access information from one another, and in order to get access to your serious information (contacts, messages, pictures) apps are required to request permissions that must be explicitly granted by the phone’s owner.  That being said it’s still not a good idea to go around downloading every app you can just for the heck of it.  Security should not encourage reckless behavior.

So what’s the issue?

So why the controversy?  If this new string of data will help keep our phones more secure why could people be opposed to it?  Well the new string is essentially DRM (Digital Rights Management).  As with media services, there’s potential for companies to abuse DRM to choose how and when you use their product.

Let’s say for example you download an app and like it how it is.  A new update comes out and you hear horrendous things about it like it makes an ad pop up every 5 seconds (a terrible marketing strategy).  Naturally you would try to hold off on updating to this new version as long as possible.  Well with DRM it might be difficult/impossible to tinker with the app to remove ads, and a developer could potentially force you to update to the new version by altering the metadata.  It’s a win for mobile app security, but it also invites misuse.

It’s not easy to say if this is a big deal or simply a step in the right direction for security, but it also hasn’t been in the limelight for long.  What are your thoughts on this change to coming apps?  Let us know in the comments below!

 

 

The Pixel 3 Leaks Just Keep Coming!

Share if the site was helpful

The Pixel 3 Leaks Just Keep Coming!

 

If you’re a phone junky then you’ve probably been following all the buzz surrounding the upcoming Pixel 3.  And if you haven’t been but are interested in catching up, then you’ve come to the right place.  Rumors and leaks galore have been floating around this week and late discussing what the Pixel 3 and Pixel 3 XL have in store for users.  Let’s discuss:

It’s Huge:

I’m not just talking about the hype.  The Pixel 3 and Pixel 3 XL are going to be larger than their predecessors (is anyone surprised?).  Measuring in at 5.3’’ and 6.2’’ respectively these phones will be giving the iPhone X a run for its money in terms of screen real estate.  And also much like the iPhone…yep you guess it, there’s a notch thrown into the mix.

Just like almost every other android phone since the iPhone X’s reveal the notch seems to be playing a big role in design practices.  A few images were images have been posted on the XDADeveloper’s forum showing a Pixel 3 rocking a notched display, dual front cameras, and a back that appears to be made of glass.

New features:

Why glass on the back?  Well this has led to speculation that wireless charging may be coming back into play.  This feature was discontinued a few years back in the Nexus series after Google’s acquisition of HTC.  The argument was…not the strongest.  Google argued that Nexus phones had too much z (thickness) with the wireless charging, and that USB Type-C charging was a much simpler solution.  Maybe more efficient, but its definitely not as cool!

Of course we have to take these leaks with a grain of salt.  The Pixel’s camera is a good demonstration of this.  There’s been a lot of back and forth about whether one or two cameras are in store for the new device.  Leaked images have confirmed both cases, so its hard to know what’s really true and what is just a wannabe, but a series of images leaked by 9to5Google show a single rear camera on a Pixel 3 prototype.  This leak matters as the phone was sporting a mystery Google logo, so it gains another ounce of credibility.

Whatever the case, Pixel’s are known for their phenomenal cameras, and when the Pixel 2 came out its camera blew us away.  Since then quite a few other phones have scored higher on DxOMark (a image quality rating site), but at the time the Pixel 2 was the leader.  So odds are the Pixel 3 is going to exceed expectations again and top the charts in this manner.

New Software:

The Pixel 3 is also expected to be the first official phone rocking Android P software.  So new features like RTT-Wi-Fi and auto-adjusting batteries will open new possibilities for both users and developers.  Android P is currently available for beta use if you’re interested in exploring it early, but if you’re planning on purchasing a Pixel 3, you’ll have it in your hands before you know it.  There’s no official release date set right now, but the popular opinion is this October.  So close and yet so far.

What are you hoping the Pixel 3 will have that other phones are lacking?  Do you think it will be a let down or a leader in the industry?  Let us know in the comments below!

Android One.  Two Different Strategies

Share if the site was helpful

Android One.  Two Different Strategies

Rumors have been spreading about the new Motorola One Power.  This week we got a glance at what’s coming to the market, and you may not be surprised to see that a notch is involved in the desgin.  A lot of Android phones this year have been mimicking the iPhone X’s newest feature, but there’s a lot more to the One Power than just how it looks.  It’s the head of a movement.

The One Power is sure to be a quality phone for its users.  At least a lot depends on it being that way since it will be the newest phone to carry on the Google One movement.  That movement began in 2014 as an attempt to capture the “next billion Android users” in developing countries.  It aimed to provide smartphones with current software at sub-100 dollar prices.

But How?

Typically this was possible by severly limiting specs like storage and RAM.  Users don’t have to spend much, but they can still experience all the cool new features versions like Android P have to offer.  Meanwhile Google gains a hold on smartphone marketspace that might otherwise not be filled due to price restrictions.  It’s a win win.  

At least that was the plan back then.  4 years later and the Android One movement didn’t take off exactly as the marketing team planned.  Sales faltered for the lower end phones due to their lack of being positively distinguished from their more expensive counterparts.  Appearing somewhat clunky, budget phones didn’t sell well, and there’s still a large population out there that is waiting to be capitalized on.  Android Go rose to take Android One’s place as the budget movement recently, and it looks like this new burst of marketing may have a better outlook.

Down But Not Out

That being said, Android One didn’t fade into oblivion, but instead decided to change its strategy.  It’s risen its price range to the $250-400 mark and in turn is producing sleeker more “high-end” looking phones that run on the newest softwares.  These phones are still more affordable than some, and this is thanks to the movement’s slogan “Everything you want.  Nothing you don’t.”  The phones don’t have a bunch of manufacturer customizations, but instead function similarly to Nexus and Pixel phones today.  They have Google’s apps built in, and run the latest Google software, but that’s just about it.  This is great if you’re not looking to spend a fortune and you also don’t feel the need for the extra add ons.

The One Power Up Close

The Motorola Power One will be prominently displaying a notch on its front along with a vertical dual carmera placement on its back.  Couple this with curved edges and a fingerprint sensor and we’re looking at a pretty stylish phone.  Whether you like the iPhone X or not, its undeniable that it’s style has set a trend that others a following.  How the software on the inside runs is a whole nother store though!

Do you have any thoughts on the new Motorola Power One?  Let us know in the comments below.

 

en English
X