There are certain standards that modern checks need to meet. These aren't required by law, but banks today generally insist on them. If you are able to meet these standards and print your own checks at home, you are allowed to do so.
One way this is commonly done is with purchased check blanks and check printing software. Office supply stores sell check blanks that fit into standard computer printers. This check paper includes the necessary security features of checks, and using the check printing software, you can print your personal information, including your name & address, your bank's name and address, and your account numbers.
The account numbers on the bottom of the checks are called the MICR code, which stands for Magnetic Ink Character Recognition. Normally, these numbers were printed with special magnetic ink, which was used in automated check reading machines. Checks that you purchase from your bank still use magnetic ink; however, modern check readers are optical, and don't require magnetic ink. So you should be able to print checks with your printer using standard ink/toner, and not have a problem.
Without purpose-specific check printing software, you could still buy blank check paper from the store, and with a little trial-and-error you could print using Excel. The biggest challenge with doing this would be printing the MICR code: you would probably need to install an MICR font on your computer and play around with the size and location until you get it where you want it. Doing a little Googling, I see that there are some check printing Excel templates out there, but I haven't tried any of these, and it is unclear to me whether they actually print the MICR, or whether they assume that you have blank checks with the MICR account number and check numbers already printed.
Without purchasing blank check paper, you won't have any of the security features, such as microprinting, watermarks, erasure protection, anti-photocopying background, etc. As you mentioned, if you are depositing checks via mobile phone app, as some banks now allow, none of these security features are doing any good. The problem, however, is that you are not writing checks for yourself; you are writing checks to other people, and you have no way of knowing whether or not their banks are going to give them trouble with your checks. There is enough check fraud out there that lots of bank tellers are very cautious. I recommend sticking with check paper that has the security features because, if nothing else, it will make your check look more like a real check.