Swift Mobile App Project: Implementing a Ball and Bird Game on iOS

Verified

Added on  2022/08/26

|4
|1346
|33
Project
AI Summary
This project details the development of an iOS mobile application using Xcode and Swift, mirroring the concept of the 'Angry Birds' game with a ball-shooting mechanic aimed at a bird target. The game features a gaming scene displaying the bird, ball, and shooter, along with a completion scene showing the final score and a replay option. The development process is divided into three stages: initial development, basic game implementation, and stretch abilities. The app is designed for casual gamers, optimized for various iPhone screen sizes in landscape mode, with game durations capped at 20 seconds. Key objects include the bird, which disappears upon being hit by the ball, and a draggable shooter object constrained to a specific area. The development strategy involves screen-fit programming, creating draggable images, adding dynamics to the ball, and implementing collision boundaries. Usability is measured through efficiency, effectiveness, and satisfaction, with considerations for limitations such as connectivity and screen size. Future enhancements include adding sound effects, animation, and utilizing built-in sensors and vibrators to improve the user experience. Desklib provides access to similar past papers and solved assignments for students.
Document Page
Programming
Mobile computing
Student Name –
Student ID –
In depth Evaluation
Here, an iOS mobile app has been developed using the Xcode platform and the Swift
language. The concept behind the game is similar to the ‘Angry Bird’ game. The aim is
shooting a ball to a bird target. If the game ends, then a completion view must be shown
having an option of restarting the game. The Gaming Scene shows the bird, ball and shooter
symbol. The completion scene shows the final score as well as the ‘replay’ button. The 3
major stages used in the development of the game are : Initial development , Basic game and
examples of the stretch abilities.
The users include the casual game players. The users must be able to play on their own and
must be attracted to play again. The app is designed such that it can be run using any screen
size of iPhone models.
The mode used here is landscape. The duration of a game is less than or equal to 20 seconds.
If the game is ended, then the completion screen showing the score and replay button is
displayed. There are mainly 3 objects used. The bird occurs towards the right boundary of the
screen. If a ball hits the bird, then it will disappear. If 2 or more birds appear, they do not
overlay on top of one another. The ball releases in a direction shown by the shooter. The
boundaries for the collision of the ball are left, top and bottom of the screen.
Also, the balls can collide among themselves. The shooter object can be dragged and moved
by the user. A square located at the centre of the screen’s left boundary acts as a constraint
for the movement of the object. If the user does not touch the shooter, it returns to the reset
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
position which is the initial location of the shooter. It then triggers the ball’s emergence. The
co – ordinates are used for the calculation of the angle.
The strategy used for the development of the game consists of various stages. In the Stage 1 ,
the position of the shooter object is set by screen – fit programming approach, the shooter
object is made more real, the ball object is created , dynamics are added to the ball and the
ball is shot at a specified angle. In the stage 2, the bird object is created, the birds are created
randomly, a time out is set for the game and the game – over screen is implemented. In the
stage 3, the stretch abilities are implemented.
Evidence Based Research
The usability can be measured using 3 factors like efficiency, effectiveness as well as the
satisfaction ( Dinh et. al., 2013 ). The cognitive load, learnability, memorability and errors
can also be used ( Laurila et. al., 2012 ). PACMAD usability model uses various attributes
( Sultenfuss et. al., 2018 ). Some limitations of the mobile app are connectivity, mobile
context, small size of screen, varying display resolution, processing capacity and power
which is limited and data entry method ( Satyanarayanan et. al., 2010 ). The various programs
used here include screen – fit programming concept, programming of the draggable image
class, defining the delegate, adding the image view using a program, creating motion using
linear speed and using collision with the boundary, creating a vector in the direction in which
the linear movement occurs, addition of an image view using a program , addition of various
actions to be taken after the collision, removal of a sub view, using a timer, creation of
intersecting image views, using arrays, generation of the random number and making a view
showing or hidden as per the requirement ( Kohtz et. al., 2015 ). The app designed is
efficient as it is fast and does not waste time. The app is effective as it is implementing all the
desired functions properly. The app shows good satisfaction levels as it meets the user
requirements in all respects. If a user plays a game on the application, then after a fixed
duration, the game gets over, displays the score and gives an option to replay. All the strikes
and hits are perfectly working and collisions are all good. There are no errors observed as of
now.
Document Page
Future Work Suggestion
In future, the sound effects can be added to the game to make it more appealing, more
animation effects can be added for creating visual impact and sensors as well as vibrators can
be used which are built – in.
There is a rapid advancement in the field of portable devices ( Huang et. al., 2012 ). With the
increasing number of people opting to use these portable devices, a lot of applications are
coming in the market every day. These applications range from the games, to organizers to
communication based applications which make the daily life of the people very easy. The
games being developed are gaining popularity among all the users. The sound effects and
animations used make them close to the real life ( Gai et. al. , 2016 ). As the users progress,
there will be a need of growing collaboration for better development ( Pitoura et. al., 2012 ).
The convenience of the application makes it popular and people come back to it again if it
appeals to them. The game has been designed keeping all these points in mind while
designing. Still, there is a scope of some improvement which will add to the quality of the
application.
Document Page
References
Dinh, H.T., Lee, C., Niyato, D. and Wang, P., 2013. A survey of mobile cloud computing: architecture,
applications, and approaches. Wireless communications and mobile computing, 13(18), pp.1587-
1611.
Gai, K., Qiu, M., Zhao, H., Tao, L. and Zong, Z., 2016. Dynamic energy-aware cloudlet-based mobile
cloud computing model for green computing. Journal of Network and Computer Applications, 59,
pp.46-54.
Huang, D., Wang, P. and Niyato, D., 2012. A dynamic offloading algorithm for mobile
computing. IEEE Transactions on Wireless Communications, 11(6), pp.1991-1995.
Kohtz, R.A., Austin, R. and Cook, J., Intermec IP Corp, 2015. Trigger device for mobile computing
device. U.S. Patent 9,088,281.
Laurila, J.K., Gatica-Perez, D., Aad, I., Bornet, O., Do, T.M.T., Dousse, O., Eberle, J. and Miettinen,
M., 2012. The mobile data challenge: Big data for mobile computing research (No. CONF).
Pitoura, E. and Samaras, G., 2012. Data management for mobile computing (Vol. 10). Springer
Science & Business Media.
Sultenfuss, A.T. and Reddy, K.P., Dell Products LP, 2018. Cart for wirelessly recharging mobile
computing devices. U.S. Patent 10,110,042.
Satyanarayanan, M., 2010, June. Mobile computing: the next decade. In Proceedings of the 1st ACM
workshop on mobile cloud computing & services: social networks and beyond (p. 5). ACM.
chevron_up_icon
1 out of 4
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]