An overview about the iPhone SDK

The iPhone SDK was announced officially on March 6, 2008, the first beta release was on July 11, 2008 which demanded a firmware update for all iPhone and iPod users. The SDK continued to develop with time until the Beta3 update to the 2.1 SDK was released on August 8, 2008.

 

Here is a small timeline.

 

Date of release

SDK Version release

iPhone OS Version

March 6, 2008

First beta

1.2b1

March 27, 2008

Beta 2

2.0b2

April 8, 2008

Beta 3

2.0b3

April 23, 2008

Beta 4

2.0b4

May 6, 2008

Beta 5

2.0b5

May 29, 2008

Beta 6

2.0b6

June 9, 2008

Beta 7

2.0b7

June 26, 2008

Beta 8

2.0b8

July 24, 2008

First Beta for OS v2.0

2.1

July 30, 2008

Beta 2 update v2.0

2.1

August 8, 2008

Beta 3 update v2.0

2.1

 

The iPhone SDK package contents

 

The SDK is broken down to the following:

Cocoa Touch

The Cocoa Touch layer is one of the most important layers in iPhone OS. It comprises the UIKit and Foundation frameworks (UIKit.framework and Foundation.framework), which provide the basic tools and infrastructure you need to implement graphical, event-driven applications in iPhone OS.

It also includes several other frameworks that provide key services for accessing device features, such as the user’s contacts.

This framework is used to implement the core set of features.

  • Application management
  • Graphics and windowing support
  • Event-handling support
  • User interface management
  • Objects representing the standard system views and controls
  • Support for text and web content
  • Accelerometer data
  • The built-in camera (where present)
  • The user’s photo library
  • Device-specific information

 

Media

The graphics and media technologies in iPhone OS are geared toward creating the best multimedia experience available on a mobile device. More importantly, these technologies were designed to make it easy for you to build good-looking and -sounding applications quickly. The high-level frameworks in iPhone OS make it easy to create advanced graphics and animations quickly, while the low-level frameworks provide you with access to the tools you need to do things exactly the way you want.

  • OpenAL
  • Audio mixing and recording
  • Video playback
  • Image file formats
  • Quatrz
  • Core Animation
  • OpenGL ES

 

Core Services

The Core Services layer provides the fundamental system services that all applications use. Even if you do not use these technologies directly, every other technology in the system is built on top of them.

  • Networking
  • Embedded SQLite database
  • GeoLocation
  • Threads

 

OS X Kernel

The Core OS layer encompasses the kernel environment, drivers, and basic interfaces of the operating system. The kernel itself is based on Mach and is responsible for every aspect of the operating system. It manages the virtual memory system, threads, file system, network, and inter-process communication.

 

The drivers at this layer also provide the interface between the available hardware and the system frameworks that vend hardware features. Access to kernel and drivers is restricted to a limited set of system frameworks and applications. iPhone OS provides a set of interfaces for accessing many low-level features of the operating system.

Your application accesses these features through the LibSystem library. The interfaces are C-based and provide support for the following:

  • Threading (POSIX threads)
  • Networking (BSD sockets)
  • File-system access
  • Standard I/O
  • Bonjour and DNS services
  • Locale information
  • Memory allocation

Develop your first iPhone application:

Things you need before going any further:

  • A “MAC OS X” platform of version 10.5.3 or later. You can get an original MAC box or you can simply get one of the hacked versions of the MAC OS, for more information click here.
  • The iPhone SDK “Software Development Kit” you can get one from the iPhone developer program home page, or simply click here.
  • Xcode, the IDE “Integrated Development Environment” used to develop applications and software for MAC based platforms. Although one of Xcode’s goals is to reduce the time you spend writing code, you still devote a considerable part of your development in the text editor. To that end, the text and source editor provide many features with the aim of making your source-code editing a productive and efficient endeavor. Code folding, code completion, Edit All in Scope, Refactoring, and other features allow you to focus your attention on the right areas and to use your time as efficiently as possible. It’s packed with the iPhone installer, so no need to worry about it.
  • Interface builder, this application lets you design compelling user interfaces graphically. Your work is saved as nib files that your application loads at runtime. This means that you what you design is exactly what users of your application see; you work with the actual controls that iPhone OS places on the users’ screens. It also means that you spend less effort codifying the user-interface–related aspects of your application in source code. It’s also supplied in the SDK package.

 

 

Other developing applications you may use:

  • Debugger, as you start testing your application, you may need to step through your code to the cause of unexpected behavior. Xcode’s debugging facilities provide the usual debugging features, such as breakpoints, viewing variables, and so forth. But Xcode provides these and other debugging features right in the text editor. That is, you can make a change in your code, add a breakpoint, start your application, and perform most debugging tasks in the same window.
  • Instruments, as you near the end of the development process, you must ensure your application uses the resources of the device on which it’s running as efficiently as possible, so that battery power is not wasted and your application does not gather system resources unnecessarily. “Instruments” shows your application’s resource usage, including memory, CPU, and network, in a graphical timeline that lets you see how your application behaves over time.

The MVC design pattern:

The structure of iPhone applications is based on the Model-View-Controller (MVC) design pattern because it benefits object-oriented programs in several ways. MVC–based programs tend to be more adaptable to changing requirements—in other words, they are more easily extensible than programs that do not use MVC. Furthermore, the objects in these programs tend to be more reusable and their interfaces tend to be better defined.

In the MVC design pattern, the model layer consists of objects that represent the data your application manages. The objects in this layer should be organized in the way that makes the most sense for the data. External interactions with model objects occur through a well-defined set of interfaces, whose job is to ensure the integrity of the underlying data at all times.

The view layer defines the presentation format and appearance of the application. This layer consists of your application’s windows, views, and controls. The views can be standard system views or custom views you create. You configure these views to display the data from your model objects in an appropriate way. In addition, your view objects need to generate notifications in response to events and user interactions with that data.

The controller layer acts as the bridge between the model and view layers. It receives the notifications generated by the view layer and uses them to make the corresponding changes in the data model. Similarly, if the data in the data layer changes for other reasons (perhaps because of some internal computation loop), it notifies an appropriate controller object, which then updates the views.

Developing the iCalculator application:

Here is a fast overview of what we will do:

  • Creating the project.
  • Implementing the Model Object.
  • Implementing the Controller Object.
  • Implementing the View Object by use of the “Interface Builder”.
  • Customizing the app delegate to incorporate the view controller object, and add it to the application window.
  • Connecting the view controller to its view.
  • Finalizing the application and setting its icon.

 

Creating the project

1) Launch Xcode. You can find it in the developer folder > Applications > Xcode.

2) Choose File > New Project.

3) Choose from the iPhone OS templates.

4) Choose Window-Based Application.

5) Name your project “iCalculator”.

Figure 1: New Project.

 

Figure 2: The iCalculator Project.

Note:

iCalculator.app: The application binary, the project’s product. It’s in red because the product hasn’t been built yet.

 

iCalculatorAppDelegate.h, iCalculatorAppDelegate.m: The files that implement the application’s delegate.

 

MainWindow.xib: The nib file that defines the application’s main window. Despite its name, iPhone applications normally have only one window.

 

 

 

Implementing the Model Object

We will create a new class whose instance represents an object of the calculator, follow the following steps:

1) Click on the “Classes” folder.

2) Choose File > New File.

3) Choose Cocoa Touch Classes > NSObject subclass.

4) Name the class “iCalculator”, make sure that creating the header file option is selected.

5) Insert the following Code into iCalculator.h:

 

 

Figure 3: iCalculator.h.

 

 

6) Insert the following Code into iCalculator

 

Figure 4: iCalculator.m part I.

 

Notes for newbies:

1) The “retain” and “release” methods are used mainly in the memory management of iPhone applications, that’s because there isn’t any garbage collection in the iPhone OS.

 

Thus, memory management is done manually; you can’t simply call “dealloc” to free the resources and references of a certain object, because this object may contain references to other objects that will not be de-allocated, and thus will cause memory leaks, so we use retain which will increment the value of a certain variable for this instantiated object, and release decrements the value, and when it reaches zero, the referenced object is de-allocated.

 

For more information about this topic, read more about memory management in Objective C++ 2.0.

2) If ( Self = [ super init ] )

 

What does this mean? This means that init of the parent class “NSObject” function will be called and if self is not equals to null do the following.

 

Figure 5: iCalculator.m part II.

 

 

Figure 6: iCalculator.m part III.

 

Implementing the controller object:

1) Click on classes.

2) Choose File > New File

3) Choose iPhone OS> Cocoa Touch Classes > UIViewController subclass.

4) Name the class “iCalcViewController”.

5) Modify the iCalcViewController.h header file as the following:

 

Figure 7: iCalcViewController.h

 

6) Modify the iCalcViewController.m file as the following:

 

Figure 8: iCalcViewController.m part I.

 

 

Figure 9: iCalcViewController.m part II.

 

Implementing the View Object

To get users excited about your application, it should have the best user interface possible. Interface Builder allows you to build beautiful, more importantly, useful user interfaces by dragging controls from a library of user-interface elements and laying them out n a view as you want them to appear to the user, your user-interface designs are known nib files. Your application loads these resources at runtime to reconstitute the use interface you designed. This means that you can make substantial changes to the user interface layout (and even some behavior) without having to edit source code. This is the main benefit of the Model-View-Controller paradigm.

1) Expand the “Resources” folder.

2) Double click on “mainWindow.xib” and the interface builder will open.

3) From the interface builder choose File > New file.

4) Choose Cocoa Touch and then press on View.

 

Figure 10: iPhone OS UI templates.

 

5) Choose save, name it as “CalcView” and navigate till you reach the location of your project and save it under the “Resources” folder and press ok.

 

6) Xcode will ask you to update the project to accommodate the new file, confirm this process.

 

7) Press on the File’s Owner icon.

a. Choose Tools > Inspector.

b. Display the identity pane.

c. In the Class text field enter “iCalcViewController”, note that it will auto-complete.

 

And by this way, we’ve connected between our view object and the controller object.

 

 

Figure 11: “calcView”’s Components.

 

8) Press on the View icon.

a. Choose the Inspector Attribute pane.

b. Customize your view as you desire, here we changed the background’s color to black.

 

Figure 12: “calcView”’s View designer.

 

9) Add input and output controls to the view

a. Choose tools > Library.

b. In the organization pane, select Library > Cocoa Touch Plug-in > Inputs & Values.

c. Select the Text Field item and drag it to the View.

Figure 13: Drag and drop components.

 

 

d. Resize the text field, by enlarging it, such that it contained by most of the view’s width.

 

Figure 14: resize text field.

 

e. Display the Inspector Attribute pane.

f. Set the text field text to 0.

g. Set the alignment to right-align.

h. Set the title typeface and size, by setting the focus on the text field in the view > Choose Fonts, set it to bold and size 36.

Figure 15: Set font.

 

i. Add a rectangular button.

  • Choose “Round Rect Button” from the library and drag and drop.
  • In the inspector size pane, set the button’s width to 64 and height to 70.

Figure 16: Set font.

 

  • Connect the button’s “Touch Down” event to the “press:” action method of the “iCalcViewController” class.
  • Select the button in the view
  • Display the Inspector Attributes pane.
  • Set the title color to black.
  • Set the button title to 7.
  • Set the font size to 48.

Figure 17: Set button attributes.

 

j. Create the button grid:

  • Choose the button from the view.
  • Choose Edit > Duplicate.
  • Position the clone beside the original button.

Figure 18: Clone the button.

 

  • Select both buttons and do exactly as the previous steps.

Figure 19: Clone the two buttons.

 

  • Select the four buttons and with the same steps we can generate the following view.
  • But by changing the text of each button and making sure that the action event of each button is the “press” method

Figure 20: The final calculator view.

 

Editing the application delegate:

1) Double click on the iCalculatorAppDelegate.h to modify it, edit it to look like this:

Figure 21: iCalculatorAppDelegate.h.

 

2) Double click on the iCalculatorAppDelegate.m to modify it, edit it to look like this:

Figure 22: iCalculatorAppDelegate.m.

 

Connecting the View controller to the View

As mentioned before, we have connected between the view and the controller, but that was an initial connection.

We have to be more precise, for example we have to mention which controls do certain actions, and which preview certain data, so here is what we have to do:

1. In the CalcView.xib window, select the File’s Owner proxy (which represents an instance of the “CalcViewController” class).

2. In the Inspector Connections pane, connect the displayField outlet to the text field in the view.

Figure 23: Connecting the view with the controller.

 

3. Connect the view outlet to the view.

4. Save the “CalcView.xib” file.

Note: If you pressed on one of the buttons, you will find that their action event handler is already set, as we set it before during designing the view to the “press” function.

Setting the application icon

1. In Interface Builder, take a snapshot of the Calc button grid:

a) Place the pointer at the top-left corner of the grid.

b) Press Shift-Comand-4 and hold down the mouse button.

c) Drag the pointer to the bottom-right corner of the grid and release the mouse button.

Figure 24: Taking a snapshot.

 

Mac OS X places the snapshot file in your desktop using the name Picture 1.jpg (or a name with a higher number if you’ve captured other snapshots).

2. Rename the snapshot file, icon.jpg.

3. In the Groups & Files list, select Resources.

4. Choose Project > Add to Project.

5. Navigate to your Desktop directory and choose icon.jpg.

6. In the dialog that appears, ensure the copy option is selected, and click Add.

7. In the Groups & Files list, double-click Resources > Info.plist.

8. In the editor window, set the value of the Icon file key to icon.jpg,

Figure 24:Info.plist.

 

9. Save the Info.plist file.

Running your application

Build your application and run it on your simulator, if you have an iPhone connected to Xcode you can choose to deploy and run on it.

Please not that, you have to have a developer’s certificate from apple to develop for iPhones, which will cost you $99 or $299 a year depending on what kind of certificate you want, for more details click here.

 

Download Article Source Code Below (Must be registered user, registration is free!)

 



출처 : http://blog.naver.com/PostView.nhn?blogId=belladonnaf&logNo=50099385207
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 10. 14. 22:57
[아이폰 앱 개발] 아이폰용 css 적용하기
1. 아이폰용 css 적용하기

<!--[if !IE]>-->
<link 
   rel="stylesheet" 
   href="small-screen.css" 
   type="text/css" 
   media="only screen and (max-device-width: 480px)" 
/>
<!--<![endif]-->




@media only screen and (max-device-width: 480px) {
/* iPhone only CSS here */
 #test-block {
   background: red;
 }
}



아이폰은 max-device-width가 480px로 정의되어 있습니다.

위 두개의 코드는 이러한 값을 이용하여 아이폰용 css를 추가하는 방법입니다.

범용적인 스타일시트로 모바일 웹어플리케이션을 개발후

아이폰에서는 더 나은 UI를 만들기 위해 위와 같이 아이폰용 CSS를 추가함으로써

아이폰의 사파리브라우저로 접속하는 사용자들에게 다른 UI를 제공해줄수 있습니다.



2. 아이폰용 서버측 코드 실행하기

<?php
  $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
    if ($browser == true){
    $browser = 'iphone';
  }
?>



<?php if($browser == 'iphone'){ ?>
  <title>Short iPhone only title</title>
<?php }else{ ?>
  <title>Regular title</title>
<?php } ?>



php의 경우 user-agent 값을 이용해서 서버측에서 아이폰을 위한 코드를 별도로 실행이 가능합니다.



3. viewport meta 태그

아이폰은 meta태그의 viewport를 이용해서 더 나은 UX를 제공해줄수 있습니다.

예를 들면 기기의

최대 가로크기를 정한다거나, 줌레벨을 정한다거나, 사용자 확대축소 방지 여부 등을 설정할 수 있습니다.



<meta name="viewport" content="width=device-width" />
<meta name="viewport" content="width=780" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
maximum-scale=1.0




width=device-width

이 값은 페이지를 기기의 width에 맞도록 출력합니다. 아이폰은 320*480의 세로보기 모드와 480*320의 가로보기 모드를 가지고 있습니다. width=780 과 같이 특정 값을 정의할 수도 있지만, 가로, 세로보기 모드에 최적화 시키기 위해서 width=device-width로 설정하는 경우 기기의 width값에 맞춰서 페이지를 보여줍니다.


initial-scale=1.0

이것은 페이지가 로딩될때 확대비율을 정할수 있습니다. 값이 커질 수록 확대 비율된 모습으로 페이지가 나타납니다.



maximum-scale=1.0

허용가능한 확대비율의 최대치를 설정합니다.



user-scalable=0

사용자의 확대보기를 허용할지 여부를 설정합니다. 값은 0(허용하지 않음), 1(확대보기 허용함) 입니다.





<meta name="viewport" content="width=device-width" /> 를 설정했을때



<meta name="viewport" content="width=device-width" />를 설정 안했을때




위의 두개의 예시화면처럼

viewport를 width=device-width 로 설정한 경우에는

페이지의 가로길이를 기기에 맞춰서 페이지를 보여주지만

설정이 되어있지 않은 경우

사파리브라우저는 마치 자신이 데스크탑브라우저인양

페이지를 넓게 인식하여 보여줍니다.



4. 툴바 숨기기

window.addEventListener('load', function(){
  setTimeout(scrollTo, 0, 0, 1);
}, false);




위 스크립트를 사용하면 사파리브라우저의

주소입력창과 검색창이 있는 툴바를 보이지 않는 상태로 변환합니다.

툴바가 사라지는 것이 아니라

스크립트를 통하여 스크롤을 아래로 내려

툴바 바로 아래에서부터 웹페이지가 보여질수 있도록 하는것입니다.

이 스크립트를 사용하는 경우 사용자에게 최초로 페이지를 보여줄때

툴바가 차지했던 부분까지 화면공간을 확보하여 보여줄 수 있습니다.

그리고 보기에도 확연히 넓어보이는 것을 느낄수 있습니다.




간혹 페이지 콘텐츠 길이가 너무 짧아서 스크롤할 내용이 없을때

이 스크립트는 우리가 원하는 기능을 수행하지 않을 수도 있습니다.

그리고 페이지 콘텐츠 길이가 스크롤을 내리기에 어정쩡한 길이라면

툴바가 보여지지도 사라지지도 않은 반쯤 가려진 상태로 보이게 되는 경우도 있습니다.

위의 캡쳐 사진이 그 예입니다.

콘텐츠 길이가 어정쩡해 툴바가 가려질 만큼 스크롤바가 내려가지 않아

툴바가 절반만 가려진 모습입니다.



이런문제를 해결하기 위해서는 높이값을 최대사이즈로 지정하여

페이지가 스크롤될 수 있게 할 수 있습니다.


<meta name="viewport" content="height=device-height,width=device-width" />



viewport를 이용해 height=device-height 를 설정하면

height가 기기의 height값이 되도록 설정되기 때문에 콘텐츠 길이가 짧더라도

페이지 최초 로딩 후 툴바가 보이지 않게 됩니다.



5. 기울기변화 감지하기

window.onorientationchange = function() {
  alert(window.orientation);
}




0 : 일반적인 세로 화면(홈 버튼이 아래에 있음)
-90 : 시계 방향으로 회전된 가로 화면(홈 버튼이 좌측에 있음)
90 : 시계 반대 방향으로 회전된 가로 화면(홈 버튼이 우측에 있음)
180 : 180도 뒤집힌 화면(홈 버튼이 위에 있음)


가로보기 모드와 세로보기 모드에서 다른 UI를 제공하려는 경우

이 이벤트를 동해서 특정 스크립트를 실행할 수 있습니다.



보기 모드에 따라 다른 UI를 제공한다거나 하는 특별한 이유가 없다면

viewport에서 <meta name="viewport" content="width=device-width" />를 설정함으로써

width가 보기 모드에 따라 자동 조절되기 때문에 걱정할 것이 없습니다.



6. 라운드박스, 라운드버튼


.box { 
   -webkit-border-radius: 5px;  /* safari */
   -moz-border-radius: 5px;  /* firefox */
   background: #ddd; 
   border: 1px solid #aaa; 
}







사파리 브라우저에서는 사파리브라우저의 css 속성을 이용하여

쉽게 라운드박스, 라운드 버튼을 구현할 수 있습니다.



7. 터치 이벤트

touchstart
touchend
touchmove
touchcancel (시스템이 터치한 것을 취소하는 경우)


위의 것들은 터치관련 이벤트 입니다.


이벤트 발생시 event객체를 전달 받는데 다음과 같은 프로퍼티가 존재합니다.



touches : 복수로 화면에 터치되는 각 손가락들에 대한 터치 이벤트 모음들. 이 객체들은 페이지에 터치되는 좌표들의 값을 가지고 있습니다.
targetTouches : 터치할 때 발생합니다. 그러나 전체 페이지가 아닌 타깃 요소에만 반응합니다.



8. 제스쳐

gesturestart
gestureend
gesturechange

제스처 관련 이벤트 입니다.

event 객체를 전달받으며 다음과 같은 프로퍼티가 존재합니다.

event.scale : 확대비율 값입니다. 값 1은 확대축소가 되지 않은 기본 상태 입니다. 값이 1보다 작을 때는 줌-아웃이며 줌-인일때는 1보다 값이 큽니다.
event.rotate - 회전 각도입니다.



9. 특수링크

<a href="tel:12345678900">Call me</a>
<a href="sms:12345678900">Send me a text</a>

아이폰은 통화 또는 SMS 보내기를 실행할수 있는 특수 링크가 있습니다.

'tel:번호'로 이루어진 링크는 전화연결이 되며
'sms:번호'로 이루어진 링크는 sms가 연결됩니다.






이외에도

아이튠즈 스토어 링크는 아이튠즈와 연결됩니다.

구글맵 링크는 지도 애플리케이션과 연결됩니다.

유튜브 링크는 유튜브 애플리케이션과 연결됩니다.

이메일 주소 링크는 메일 애플리케이션에 연결됩니다.




10. 홈아이콘




사파리 브라우저를 이용하여 웹서핑을 하면서 하단에 + 탭을 클릭하면

현재 페이지를 책갈피(북마크, 즐겨찾기) 추가하거나

홈화면에 추가할 수가 있습니다.





여기서 말하는 홈화면에 추가란

아이폰의 바탕화면에 아이콘이 생성되어 웹페이지로 빠르게 연결할 수 있는 것을 말합니다.


<link rel="apple-touch-icon" href="http://www.example.com/iphone_home_icon.png" />


이 코드를 넣으면 여기에 설정된 이미지 파일이 홈아이콘으로 설정됩니다.

홈아이콘은 57*57의 png파일로 만드는 것이 좋습니다.

아이폰에서 자동적으로 볼록 튀어나와보이는 듯한 효과와 아이콘의 라운딩처리를 하기때문에

홈아이콘은 정사각형의 모양으로 만드셔도 됩니다.

홈아이콘이 설정되어있지 않을 경우

해당 웹페이지의 썸네일화면이 홈아이콘으로 설정됩니다.



11. 디버깅


console.log('Something');
console.error('Oops');
console.warning('Beware!');





위의 코드를 실행하였을 경우 아이폰 사파리 브라우저의 콘솔디버그 도구는 다음과 같은 메시지를 표시합니다.

디버깅용으로 사용되는 함수들입니다.

아이폰 사파리브라우저에서 콘솔디버그 도구를 사용하는 방법은

제가 지난번에 쓴 포스팅에 자세히 나와있습니다.



Posted by 오늘마감

댓글을 달아 주세요

아이폰어플정보2010. 6. 26. 09:53
아이폰용 손안의 수족관 Tap Fish (아이폰 게임, 아이팟터치 게임, 추천 게임)

손안의 수족관 - Tap Fish

앱스토어 평점 : 3.5 / 5.0

앱스토어 연결 : 무료버전

Tap Fish 는 아이폰용 수족관 가꾸기 게임중에서 가장 인기 있는 게임입니다. 수족관이라는 한계와 빈약한 소셜기능덕에 오랫동안 즐길만한 게임은 아니지만 한달 정도는 재밌게 즐길 수 있을 겁니다. 한달 정도면 10레벨 이상 달성하게 되고 수족관을 멋지게 꾸밀 수 있습니다.

이런 게임은 목표를 달성하게 되면 그 후부터는 의무적(습관적)으로 하게 되는데요. 이 게임은 소셜기능이 빈약해 쉽게 떠날 수 있습니다. 컨텐츠 업데이트라고 해봐야 새로운 물고기와 데코레이션 정도 뿐이고 장소가 협소해서 다양한 데코이션을 놓을 수 없습니다. 그래서 수족관을 여러개 줍니다만 노가다만 늘어날 뿐이죠.

Tap Fish의 게임 화면입니다. 이 정도 꾸밀려면 상당한 Coin이 필요합니다.

수족관은 3개까지 확장 가능합니다. 그 이상의 수족관을 원하면 캐쉬(Bucks)로 구입해야 합니다.

하지만 3개만 관리해도 충분한 재미를 느낄 수 있을겁니다. 솔직히 그 이상 넘어가면 지겨울 것 같습니다.

우측하단에 있는 화살표 아이콘을 누르면 메뉴가 나옵니다.

Food : 물고기들에게 음식을 뿌립니다. 멀티터치를 지원하니 여러 손가락으로 화면을 두드리면 빠릅니다.

Fish Eggs : 수족관당 50마리의 물고기를 키울 수 있습니다. 50마리 이하라면 물고기 알을 사서 풀어 놓으세요.

Breed : 빠르게 골드를 벌고 싶다면 필수 항목입니다. 자세한 내용은 밑에 있습니다.

Store : 수족관 배경 및 각종 데코레이션들을 구입할 수 있는 가계입니다.

           데코레이션을 구입하면 물고기들의 행복도가 올라가고 행복도가 올라가면 물고기 가격이 올라갑니다.

Sell : 100% 다 자란 성인 물고기들을 일괄 판매 합니다. 15%의 판매수수료를 떼 가지만 무척 편리합니다.

Love : 말그대로 물고기들을 사랑해 줍니다.?? 25Coins 와 2Xp 를 줍니다. 6시간에 한번씩만 가능합니다.

Clean : 수족관을 깨끗하게 청소합니다. 청소하지 않으면 물고기들이 죽습니다.

여기에 Neighbor 라는 메뉴가 소셜기능을 담당합니다만 랜덤하게 방문하므로 별 의미 없습니다.

친구들 수족관에 방문해서 특별한 액션을 취할 수 있었으면 더 좋았을텐데 아쉽습니다.

다양한 종류의 물고기가 있습니다. 약간의 팁을 알려드리면

1. 최대한 수익율 높은 물고기를 선택합니다. 성장기간이 길다고 수익율이 반듯이 높지 않습니다. 잘 따져보고 구입합니다.

2. Breedable 이 있는 종은 최소한 2종을 구입해야 합니다.

3. 나머지는 같은 종으로 구매합니다. 그래야 관리하기 편합니다.

Store에선 수족관 배경과 데코레이션들을 구입할 수 있습니다. 초반엔 구입하지 마시고 여유가 생겼을 때 하나씩 구입해서 꾸밉니다. 데코레이션을 구입하면 물고기들 행복도가 올라가고 높은 가격에 팔 수 있습니다.

Current Price 를 보면 490 + 49 라고 되 있는데요.. 490 은 원래 가격이고 + 49 는 행복도 때문에 플러스되는 가격입니다.

물고기가 100% 자라면 판매합니다. 

Rename 을 이용해 특별한 이름을 줄 수도 있습니다. 친한 친구이름을 적어놓고 놀려 보세요.^^

이렇게 수족관이 더러워지면 청소해야 합니다. 제때 청소해 주지 않으면 물고기들이 익사합니다.

죽은 물고기들은 1 Bucks (캐쉬) 로 되살릴 수 있습니다.

돈을 빨리 벌려면 Breeding(교배)을 해서 비싼 종을 생산해야 하는데요. 물고기들을 보면 Breedable 이라는 설명이 붙어 있는 물고기가 있습니다. 이 둘을 교배시키면 진한 키스와 함께 새로운 종을 생산합니다. 부하되는데 2일 정도 걸리네요. 그러나 기다린 보람이 있을겁니다.

가장 쉽게 만들 수 있는 종입니다. Move to tank 로 수족관으로 옮깁시다. 100% 성장하면 800골드 이상 줍니다.

Breeding Lab은 2개까지 보유가능 합니다. 2개 이상 만들려면 캐쉬로 사야 하는데 40 Bucks라네요.

제가 꾸민 다른 수족관입니다. 배경에 맞게 데코레이션도 맞춰줬습니다.

빠른 레벨업을 원한다면 최소 6시간에 한번씩은 방문해서 아래와 같은 행동을 하는게 좋습니다.

1. 수족관을 터치합니다. : 물고기들이 놀래서 도망갑니다.

2. 수족관을 청소합니다. : 청소를 하지 않으면 물고기들이 죽습니다.

3. 배고픈 물고기가 있으면 사료를 줍니다.

4. 메뉴에서 Love를 클릭합니다.

각 행동들마다 약간의 Coin과 경험치를 주니 빠른 레벨업을 원하시면 꾸준히 하는게 좋습니다만 좀 귀찮습니다. ^^

더 빠른 레벨업을 원하시면 랜덤으로 이웃수족관을 방문하셔서 청소와 사료를 주시면 됩니다만 더 귀찮겠죠?

Posted by 오늘마감

댓글을 달아 주세요

아이폰어플정보2010. 6. 25. 15:27
드디어 출시된 아이폰용 네이트온 그러나 빈약하다. (아이팟터치)

아이폰용 네이트온 (NateON)

앱스토어 평점 : 3.5 / 5.0

앱스토어 연결 : 무료버전

작년 11월말 KT에서 아이폰이 판매되고 빅히트 치며 SKT와 삼성은 다급해 집니다. 옴니아2 가격인하 하는등 부랴부랴 진화에 들어가지만 아이폰의 돌풍을 막을 수 없었습니다. 그 와중에 작년12월 아이폰용 네이트온이 클로즈 베타테스트에 들어갔습니다. 시기로 보아 아이폰 국내출시 이전부터 준비했던걸로 보입니다. 상당히 빠르게 준비했지만 정식 출시는 올4월초에 됐습니다. 그 동안 내부적으로 많은 사정이 있었을걸로 예상합니다.

출시된 기능을 보니 푸쉬쪽 기능과 버그를 제외하곤 클로즈베타때와 크게 달라지지 않았습니다. 최소 3개월간 추가 개발한 걸론 절대 보여지지 않으며 한국의 대표적인 대기업 SKT가 내놓은 어플이라고 보기엔 많이 부족해 보였습니다. 회사 내부사정으로 인해 등록을 취소할 수 있다는 말도 있었으니 SK Communications도 이번 출시를 얼마나 고민했는지 알 수 있겠으나 출시를 결정했다면 명성(?)에 걸맞게 개발해 내놨으면 하는 바램입니다.

목록을 그룹별로 펼치고 닫았으면 합니다.

아이폰 네이트온 로그인 화면입니다. PC용과 비슷합니다. 로그인 하면 친구 전체 목록이 펼쳐진 상태로 보여집니다. 그룹별로 구분되 있으니 목록이 닫힌 상태로 보여주는 옵션이 있었으면 어땠을까 싶습니다. 친구가 수십명이 되는데 이렇게 좌~악 펼쳐 놓으면 친구를 찾기 힘듭니다. 검색기능이 있지만 그룹을 펼치고 닫는 기능이 더 필요해 보입니다.

오른쪽 > 아이콘을 터치하면 해당 프로필을 볼 수 있으며 차단하거나 쪽지 보내기를 할 수 있습니다.

최소한 이모티콘 출력이라도 됐으면..

대화를 해보니 일반 텍스트외엔 입력이 안됩니다. 기브티콘, 플래시콘등 화려한 기능은 어쩔 수 없다 하더라도 간단한 이모티콘 입력조차 안되다니 말도 안됩니다. 거기다 상대방이 입력한 이모티콘 출력도 안됩니다. 사람들 중에 이모티콘을 조합해 글자로 만들어놓고 쓰는 사람도 있는데 그 사람과 대화할땐 아~주 난감하게 됐습니다.  /안/녕/하/세요~/느낌표/  <-- 이렇게 출력되는게 아닐런지 -_-;;;

메뉴를 누르면 대화창 닫기, 대화상대 초대, 프로필 보기, 대화저장 항목이 뜹니다. 초대도 마찬가지로 전체목록이 펼쳐진 화면에서 찾아야 하니 불편합니다. 1:1 일반 텍스트 대화외엔 이 메신저는 쓸일이 별로 없어보입니다.

대화를 여러명과 하면 오른쪽 화면처럼 스위칭할 수 있는 화면이 뜹니다. 이 부분은 깔끔하게 잘 만들었다고 봅니다.

쪽지쓰기 기능입니다. 쪽지 보내고 보는 기능은 흠잡을 곳이 별로 없었습니다.

이용중에 대화요청이나 새쪽지가 오면 툴바에 바로 표시해 줍니다. 아이콘의 기본기능이면서도 편리한 기능입니다.

반쪽짜리 푸쉬 알림

옵션들을 살펴보니 대화 요청시 알림, 새 족지 수신시 알림이라는 항목이 있습니다. 오호라~~상대방이 대화요청이나 쪽지를 날리면 알림이 뜨고 바로 들어가서 확인하거나 대화할 수 있겠구나..라며 기대를 했었습니다만..막상 써보니 반쪽짜리 쓸모없는 기능이었습니다..

이 기능을 쓰려면 프로그램을 종료하면 안된다는 겁니다. 종료하는 순간 상대방 목록엔 오프라인으로 표기되 대화요청을 할 수 없습니다. 쪽지기능으로 대화요청할 수 있을까 해서 보냈더니 묵묵부답입니다. 결국 이 푸쉬알림은 네이트온 앱이 종료되지 않은 상태에서만 쓸모가 있는 것입니다. 네이트온을 띄운 상태에서 대기모드로 들어가도 알림이 옵니다만 이러면 다른 어플은 사용할 수 없습니다. (아이폰 OS 4.0에선 쓸모 있어질지 모르겠군요.)

이 기능을 제대로 쓰게 하려면 아이폰으로 접속하면 상대방 목록에 아이폰으로 접속했다는 표시를 따로 해줘야 합니다. 그리고 옵션으로 설정해 놓으면 어플을 종료해도 오프라인이 되지 말고 다른 형태로 표기해줘야 하고요. 상대방이 대화요청을 할 수 있어야 하기 때문이죠. 대화요청을 하면 푸쉬 알림으로 아이폰 사용자에게 알려주고 아이폰 사용자는 네이트온을 실행해 대화를 할 수 있어야 한다고 봅니다. 이렇게 만들어 놔야 네이트온 메신져를 여러 용도로 제대로 쓸 수 있다고 봅니다. 지금은 네이트온 들어가서 친구가 있을 때에만 일반텍스트 대화만 간단히 나눌 수 있는 정도 입니다.

SK Communications 내부사정이 어땠는지 자세히 알 순 없지만 이 기능을 보면 아이폰 개발자와 PC버전 개발자간의 커뮤니케이션이 별로 없다는걸 알 수 있습니다. 서로 조율했으면 이렇게 나오지 않았을 것입니다. (만들기 힘든 기능도 아니고;;; We Rule 이란 게임도 누군가 알바신청하면 푸쉬 알림으로 알려주더만;;;)

오랜 개발기간에도 불구하고 빈약한 기능으로 출시된 아이폰용 네이트온, 하루빨리 개선해 명실상부 국내 최고의 메신져라는걸 보여주길 바랍니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=ghostsbs&logNo=103873684
Posted by 오늘마감

댓글을 달아 주세요

아이폰뉴스2010. 6. 25. 09:48
[링크] 아이폰용 선풍기 + 레이저빔

아이폰용 선풍기 + 레이저빔

 이어폰 연결단자를 이용하는 군요. 기발한 아이디어 입니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=bjh3958&logNo=120107086836
Posted by 오늘마감

댓글을 달아 주세요

아이폰뉴스2010. 6. 23. 21:09
모비언스, 아이폰용 블루투스 키보드 개발

[아이폰/아이폰키보드]

 모비언스, 아이폰용 블루투스 키보드 개발

모바일기기 문자입력기술 전문기업 모비언스(대표 안재우, www.mobience.com)가 아이폰에 사용할

수 있는 블루투스 키보드를 개발했다.

이 제품은 블루투스 인증칩을 내장해 무선

키보드 방식으로 아이폰에 문자를 입력할 수 있는 것이 특징이다.

모비언스가 개발한 문자입력 애플리케이션인

 '스몰쿼티(smallQWERTY)'를 띄워놓은 상태에서

사용 가능한 이 제품은 특히 기존 쿼티키보드와

달리 글자판이 9개로 압축돼, 1주일만 연습하면 분당

 400타까지 칠 수 있다. 이 외에도 간단한 동작을

위한 입력버튼과 마우스패드 기능을 함께

구성해 사용편의성을 더했다.

이 회사 안재우 대표는 "애플의 '웍스 위드 아이폰

(Works with iphone)' 인증절차와 함께 아이폰 컨셉트에

 맞는 디자인 변경, 마우스패드 기능 등을 강화시켜

 오는 5~6월 안에 판매에 본격적으로 나설 것"이라며

 "무엇보다 스마트폰에서만 사용하는 것이 아닌,

IPTV와 PC까지 연동시켜 사용할 수 있도록 확장성도

 높여나갈 것"이라고 밝혔다.



출처 : http://blog.naver.com/PostView.nhn?blogId=mytelelink&logNo=20104851596
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 21. 22:47
아이폰용 오픈 소스들

출처 : http://touch.connect.kr/?mid=user_lecture&document_srl=99467&listStyle=&cpage=

공부를 하다 보면 책에 나오는 간단 간단한 소스가 아닌 전체 프로그램에 대한 소스를 보고 싶어질 때가 있습니다.
그 래서 자료를 찾아 보았습니다. 참고하세요.

 
<달력>
http://ved-dimensions.blogspot.com/2009/04/iphone-development-creating-native_09.html

<sqlite>
http://code.google.com/p/pldatabase/ (BSD license)

<계산기>
http://code.google.com/p/hpcalc-iphone/ (GPL V2 license)

<트위터 클라이언트>
http://github.com/blog/329-natsuliphone-iphone-twitter-client
http://code.google.com/p/tweetero/

<facebook>
http://github.com/facebook/three20

<rss reader>
http://code.google.com/p/iphone-simple-rss-aggregator/

<ebook reader>
http://code.google.com/p/iphoneebooks/

<blog>
http://iphone.wordpress.org/

<백업, 동기화>
http://www.funambol.com/solutions/iphone.php
http://code.google.com/p/gris/ (구글 리더 동기화)

<time tracking>
http://github.com/freshbooks-addons/freshbooks-iphone-project

<게임>
http://code.google.com/p/cocos2d-iphone/
http://code.google.com/p/tris/ (테트리스)
http://code.google.com/p/mintgostop/ (고스톱)
http://www.joystiq.com/2009/03/24/carmack-releases-open-source-wolfenstein-for-iphone/

<google toolbox>
http://code.google.com/p/google-toolbox-for-mac/

<택배>
http://kldp.net/projects/taekbae/src

<이미지 프로세싱>
http://code.google.com/p/simple-iphone-image-processing/

<증강현실>
http://www.iphonear.org/

<coverflow 대체 구현>
http://apparentlogic.com/openflow/

<정규표현식 라이브러리>
http://blog.mro.name/2009/09/cocoa-wrapped-regexh/
http://regexkit.sourceforge.net/RegexKitLite/

<라이브러리 : JSON, DOM XML, Google Data APIs, Twitter, Flick, Game Engines, Unit Testr>
http://www.codingventures.com/2008/12/useful-open-source-libraries-for-iphone-development/

<기타>
http://open.iphonedev.com/
http://joehewitt.com/post/the-three20-project/ 


출처 : http://cafe.naver.com/mcbugi/30423


출처 : http://blog.naver.com/PostView.nhn?blogId=cbdman&logNo=130084681010
Posted by 오늘마감

댓글을 달아 주세요

«이전  1  다음»