I'm thinking of making a "encryption" program (of course, very superficial compared to the actual encryption ciphers in use). For fun

Would this method be sufficient to be a cipher? o.O
For an example, I'll use the phrase "APPLE", and a 4x4 grid, though the grid should be much larger when actually made.
1. Split data by random characters.APPLE -> zAvP1PoLmE
2. Pad data.zAvP1PoLmE (10 characters) -> zAvP1PoLmEo3z02v (16 characters)
3. Twist data; that is:The character "A" consists of the data 01000001. Split it like this: 01|00|00|01, then mix it up so that the segments are arranged as 4-1-3-2 instead of 1-2-3-4, which would mean "A" would turn into 01010000 "P".
(not actual twisted data)
lpdzctzdthpstvsg
4. Arrange data as a matrix of equal lengths, and spin it.lpdz
ctzd
thps
tvsg
turns into
clpd
tzpz
tthd
vsgs
Note that each "square" is spun in a different direction. The first 4x4 is spun clockwise, the second 2x2 counter-clockwise. And so on for multiple layers.
5. Print as hex.63 6C 70 64 20 74 70 73 7A 20 74 68 76 64 20 76 73 67 73
6. Insert information.The format would be in characters. An example of information, using two characters:
- 4 bits: Length. Provides for 15 possibilities, starting from 16 and going up in multiples of 2 all the way to 1024, for now.
- 4 bits: Misc. method information; there may be multiple ways to twist the data.
- 1 bit: Direction—start from counter-clockwise, or clockwise?
- 7 bits: Version, since I might change the encryption algorithm.
In this case, the length is encoded as 0000, the misc method as 0000, the direction as 1, and the version as 0000001. This turns into the characters [null][DEL], which is represented as 007F in hex. The final cipher is represented as:
00 7F 63 6C 70 64 20 74 70 73 7A 20 74 68 76 64 20 76 73 67 73
I'm wondering if this is sound as a cipher, or if I did silly stuff that anyone could see through, or useless actions that turn out to be the same in the end (like keeping substituting between four equations when it has five variables in hopes of finding the values for each).
EDIT: One method for encoding in the 4bits could be rules for twisting data, such as twist one CCW, two CW, three CCW, four CW, then back to one, or so on.